我想调用 NLTK 通过 pyspark 在 databricks 上做一些 NLP。我已经从 databricks 的库选项卡安装了 NLTK。它应该可以从所有节点访问。
我的 py3 代码:
import pyspark.sql.functions as F
from pyspark.sql.types import StringType
import nltk
nltk.download('punkt')
def get_keywords1(col):
sentences = []
sentence = nltk.sent_tokenize(col)
get_keywords_udf = F.udf(get_keywords1, StringType())
Run Code Online (Sandbox Code Playgroud)
我运行上面的代码并得到:
[nltk_data] Downloading package punkt to /root/nltk_data...
[nltk_data] Package punkt is already up-to-date!
Run Code Online (Sandbox Code Playgroud)
当我运行以下代码时:
t = spark.createDataFrame(
[(2010, 1, 'rdc', 'a book'), (2010, 1, 'rdc','a car'),
(2007, 6, 'utw', 'a house'), (2007, 6, 'utw','a hotel')
],
("year", "month", "u_id", "objects"))
t1 = t.withColumn('keywords', …Run Code Online (Sandbox Code Playgroud) 我在github上问了同样的问题,但没有回复。所以,我认为这里可能是提出此类编码问题的更好地方,因为这是我尝试做一些编码工作时遇到的问题。
我想在运行 macOS 10.14.x 的 MacBook Pro 上使用 docker 设置气流。
我有 zpencerq/docker-airflow:1.10.2 并按照https://docs.docker.com/compose/install/#install-compose上的说明进行操作
另外,我已经按照https://github.com/uber-common/docker-ssh-agent-forward中的说明设置了 ssh 代理转发
当我跑步时:
docker-compose up -d
Run Code Online (Sandbox Code Playgroud)
我有:
Collecting my-data-store from git+ssh://git@github.com/my-data-store.git@v.xx.xx.x#egg=my-data-store
Cloning ssh://git@github.com/my-data-store.git to /my/local/path
Permission denied (publickey).
fatal: Could not read from remote repository.
Run Code Online (Sandbox Code Playgroud)
我已经创建了 ssh 公钥并将 ssh 公钥添加到我的 git 配置文件中。我还添加了我的私钥。
我已经尝试过针对此类问题的一些答案,但没有一个有效。
如果我在 Mac 终端中运行以下命令,效果很好。
git clone -q ssh://git@github.com/my_path/my-data-store.git /tmp/my_folder
Run Code Online (Sandbox Code Playgroud)
为什么 docker-compose 不能做同样的事情来访问 github ?
我错过了什么吗?
当我在数据块上运行 python3.7 代码时,我试图解决熊猫的问题。
错误是:
ImportError: cannot import name 'roperator' from 'pandas.core.ops' (/databricks/python/lib/python3.7/site-packages/pandas/core/ops.py)
Run Code Online (Sandbox Code Playgroud)
熊猫版本:
pd.__version__
0.24.2
Run Code Online (Sandbox Code Playgroud)
我跑
from pandas.core.ops import roperator
Run Code Online (Sandbox Code Playgroud)
在我的笔记本电脑上
pandas 0.25.1
Run Code Online (Sandbox Code Playgroud)
所以,我尝试在数据块上升级熊猫。
%sh pip uninstall -y pandas
Successfully uninstalled pandas-1.1.2
%sh pip install pandas==0.25.1
Collecting pandas==0.25.1
Downloading pandas-0.25.1-cp37-cp37m-manylinux1_x86_64.whl (10.4 MB)
Requirement already satisfied: python-dateutil>=2.6.1 in /databricks/conda/envs/databricks-ml/lib/python3.7/site-packages (from pandas==0.25.1) (2.8.0)
Requirement already satisfied: numpy>=1.13.3 in /databricks/conda/envs/databricks-ml/lib/python3.7/site-packages (from pandas==0.25.1) (1.16.2)
Requirement already satisfied: pytz>=2017.2 in /databricks/conda/envs/databricks-ml/lib/python3.7/site-packages (from pandas==0.25.1) (2018.9)
Requirement already satisfied: six>=1.5 in /databricks/conda/envs/databricks-ml/lib/python3.7/site-packages (from python-dateutil>=2.6.1->pandas==0.25.1) (1.12.0)
Installing collected …Run Code Online (Sandbox Code Playgroud) 我想从 pandas 数据帧创建一个 numpy 数组。
我的代码:
import pandas as pd
_df = pd.DataFrame({'itme': ['book', 'book' , 'car', ' car', 'bike', 'bike'], 'color': ['green', 'blue' , 'red', 'green' , 'blue', 'red'], 'val' : [-22.7, -109.6, -57.19, -11.2, -25.6, -33.61]})
item color val
book green -22.70
book blue -109.60
car red -57.19
car green -11.20
bike blue -25.60
bike red -33.61
Run Code Online (Sandbox Code Playgroud)
大约有 12,000 万行。
我需要创建一个 numpy 数组,例如:
item green blue red
book -22.70 -109.60 null
car -11.20 null -57.19
bike null …Run Code Online (Sandbox Code Playgroud) 我的问题与我的上一个问题相关,pytorch 在 cpu 和 gpu 上为小尺寸张量分配内存,但在超过 400 GB 的节点上出现错误。但是,它是不同的,所以我创建了一个新线程。
在这个问题中,我改变了输入张量大小的大小。
import torch
from torch import nn
import numpy as np
num_embedding, num_dim = 14000, 300
embedding = nn.Embedding(num_embedding, num_dim)
row, col = 8000, 302
t = [[x for x in range(col)] for _ in range(row)]
t1 = torch.tensor(t)
print(t1.shape) # torch.Size([8000, 302])
type(t1), t1.device, (t1.nelement() * t1.element_size())/(1024**3) # (torch.Tensor, device(type='cpu'), 0.01800060272216797)
tt = embedding(t1)
embedding.forward(t1)
t2 = t1.cuda()
t2.device, t2.shape, t2.grad, t2.nelement(), t2.element_size(), (t2.nelement() * t2.element_size())/(1024**3) # (device(type='cuda', …Run Code Online (Sandbox Code Playgroud) 我想通过 pyspark sql 在 databricks 上的数据库中查找具有特定列的表。
我使用以下代码,但它不起作用。 https://medium.com/@rajnishkumargarg/find-all-the-tables-by-column-name-in-hive-51caebb94832
在 SQL 服务器上我的代码:
SELECT Table_Name, Column_Name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_CATALOG = 'YOUR_DATABASE'
AND COLUMN_NAME LIKE '%YOUR_COLUMN%'
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何在 pyspark sql 上做同样的事情?
谢谢
我试图通过"train_test_split"进行测试并训练数据.为什么我收到错误"至少需要一个数组作为输入".
"train_test_split"的输入可以是数组和dataFrame,对吗?
import pandas as pd
import numpy as np
from rpy2.robjects.packages import importr
import rpy2.robjects as ro
import pandas.rpy.common as rpy_common
from sklearn.model_selection import train_test_split
def la():
ro.r('library(MASS)')
pydf = rpy_common.load_data(name = 'Boston', package=None, convert=True)
pddf = pd.DataFrame(pydf)
targetIndex = pddf.columns.get_loc("medv")
# make train and test data
rowNum = pddf.shape[0]
colNum = pddf.shape[1]
print(type(pddf.as_matrix()))
print(pddf.as_matrix().shape)
m = np.asarray(pddf.as_matrix()).reshape(rowNum,colNum)
print(type(m))
x_train, x_test, y_train, y_test = train_test_split(x = m[:, 0:rowNum-2], \
y = m[:, -1],\
test_size = 0.5)
# error: raise …Run Code Online (Sandbox Code Playgroud) 在连接两个表时,我想从一个大表中选择除其中 2 列之外的所有列,该大表在 databricks 上的 pyspark sql 上有许多列。
我的 pyspark sql:
%sql
set hive.support.quoted.identifiers=none;
select a.*, '?!(b.year|b.month)$).+'
from MY_TABLE_A as a
left join
MY_TABLE_B as b
on a.year = b.year and a.month = b.month
Run Code Online (Sandbox Code Playgroud)
我按照 配置单元:选择所有列排除两个 配置单元如何选择除一列之外的所有列?
但是,它对我不起作用。所有列都在结果中。我想删除重复的列(结果中的年份和月份)。
谢谢