小编Iva*_*Lee的帖子

火花中null和NaN之间的差异?怎么处理呢?

在我的DataFrame中,有些列分别包含null和NaN的值,例如:

df = spark.createDataFrame([(1, float('nan')), (None, 1.0)], ("a", "b"))
df.show()

+----+---+
|   a|  b|
+----+---+
|   1|NaN|
|null|1.0|
+----+---+
Run Code Online (Sandbox Code Playgroud)

那些之间有什么区别吗?他们怎么处理?

python null nan apache-spark pyspark

17
推荐指数
1
解决办法
2万
查看次数

如何在多 GPU 上使用 Transformer 管道?

ner_model = pipeline('ner', model=model, tokenizer=tokenizer, device=0, grouped_entities=True)
Run Code Online (Sandbox Code Playgroud)

设备指示管道使用 no_gpu=0(仅使用 GPU),请告诉我如何使用多 GPU

python huggingface-transformers

12
推荐指数
1
解决办法
6640
查看次数

火花的RDD以哪种方式完成容错?

Spark围绕弹性分布式数据集(RDD)的概念展开,RDD是一个可以并行操作的容错的容错集合.但是,我没有找到RDD完成容错的内部机制.有人可以描述这种机制吗?谢谢.

apache-spark

10
推荐指数
1
解决办法
4806
查看次数

如何在pyspark中使用第一个和最后一个函数?

我使用第一个和最后一个函数来获取一列的第一个和最后一个值.但是,我发现这两个功能都不像我想象的那样有效.我提到了@ zero323答案,但我仍然对这两者感到困惑.代码如:

df = spark.sparkContext.parallelize([
    ("a", None), ("a", 1), ("a", -1), ("b", 3), ("b", 1)
]).toDF(["k", "v"])
w = Window().partitionBy("k").orderBy('k','v')

df.select(F.col("k"), F.last("v",True).over(w).alias('v')).show()
Run Code Online (Sandbox Code Playgroud)

结果:

+---+----+
|  k|   v|
+---+----+
|  b|   1|
|  b|   3|
|  a|null|
|  a|  -1|
|  a|   1|
+---+----+
Run Code Online (Sandbox Code Playgroud)

我认为应该是这样的:

+---+----+
|  k|   v|
+---+----+
|  b|   3|
|  b|   3|
|  a|   1|
|  a|   1|
|  a|   1|
+---+----+
Run Code Online (Sandbox Code Playgroud)

因为,我在'k'和'v'上通过orderBy的操作显示了df:

df.orderBy('k','v').show()
    +---+----+
    |  k|   v|
    +---+----+
    |  a|null|
    |  a| …
Run Code Online (Sandbox Code Playgroud)

apache-spark pyspark

10
推荐指数
2
解决办法
1万
查看次数

使用多核 CPU 用 gensim 训练 Doc2vec 效率不高

我使用 24 核虚拟 CPU 和 100G 内存来训练 Doc2Vec 与 Gensim,但 CPU 的使用率始终在 200% 左右,无论修改核数。

top
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

htop
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

上面两张图显示了cpu使用率,这说明cpu没有被有效使用。

cores = multiprocessing.cpu_count()
assert gensim.models.doc2vec.FAST_VERSION > -1, "This will be painfully slow otherwise"

simple_models = [
    # PV-DBOW plain
    Doc2Vec(dm=0, vector_size=100, negative=5, hs=0, min_count=2, sample=0, 
            epochs=20, workers=cores),
    # PV-DM w/ default averaging; a higher starting alpha may improve CBOW/PV-DM modes
    Doc2Vec(dm=1, vector_size=100, window=10, negative=5, hs=0, min_count=2, sample=0, 
            epochs=20, workers=cores, alpha=0.05, comment='alpha=0.05'),
    # PV-DM w/ concatenation - big, slow, experimental mode
    # window=5 (both …
Run Code Online (Sandbox Code Playgroud)

gensim

8
推荐指数
1
解决办法
1133
查看次数

在数据框中添加一列,包括从 1 到 n 的值

我正在使用 pyspark 创建一个数据框,如下所示:

+----+------+
|   k|     v|
+----+------+
|key1|value1|
|key1|value1|
|key1|value1|
|key2|value1|
|key2|value1|
|key2|value1|
+----+------+
Run Code Online (Sandbox Code Playgroud)

我想使用 'withColumn' 方法添加一个 'rowNum' 列,数据框的结果更改如下:

+----+------+------+
|   k|     v|rowNum|
+----+------+------+
|key1|value1|     1|
|key1|value1|     2|
|key1|value1|     3|
|key2|value1|     4|
|key2|value1|     5|
|key2|value1|     6|
+----+------+------+
Run Code Online (Sandbox Code Playgroud)

rowNum 的范围是从 1 到 n,n 等于原始数据的数量。我修改了我的代码,如下所示:

from pyspark.sql.window import Window
from pyspark.sql import functions as F
w = Window().partitionBy("v").orderBy('k')
my_df= my_df.withColumn("rowNum", F.rowNumber().over(w))
Run Code Online (Sandbox Code Playgroud)

但是,我收到错误消息:

'module' object has no attribute 'rowNumber' 
Run Code Online (Sandbox Code Playgroud)

我用row_number替换了rowNumber()方法,上面的代码就可以运行了。但是,当我运行代码时:

my_df.show()
Run Code Online (Sandbox Code Playgroud)

我再次收到错误消息:

Py4JJavaError: An error occurred while calling o898.showString.
: java.lang.UnsupportedOperationException: Cannot …
Run Code Online (Sandbox Code Playgroud)

pyspark

5
推荐指数
2
解决办法
6762
查看次数

如何更改 Huggingface Transformers 默认缓存目录

默认缓存目录磁盘容量不足,我需要更改默认缓存目录的配置。

huggingface-transformers

5
推荐指数
4
解决办法
6470
查看次数

如何使用dict创建新的DataFrame

我有一个dict,例如:

cMap = {"k1" : "v1", "k2" : "v1", "k3" : "v2", "k4" : "v2"}
Run Code Online (Sandbox Code Playgroud)

和一个DataFrame A,例如:

+---+
|key|
+----
| k1|
| k2|
| k3|
| k4|
+---+
Run Code Online (Sandbox Code Playgroud)

使用代码创建上面的DataFame:

data = [('k1'),
    ('k2'),
    ('k3'),
    ('k4')]
A = spark.createDataFrame(data, ['key'])
Run Code Online (Sandbox Code Playgroud)

我想获取新的DataFrame,例如:

+---+----------+----------+
|key|   v1     |    v2    |
+---+----------+----------+
| k1|true      |false     |
| k2|true      |false     |
| k3|false     |true      |
| k4|false     |true      |
+---+----------+----------+
Run Code Online (Sandbox Code Playgroud)

我希望得到一些建议,谢谢!

pyspark

4
推荐指数
4
解决办法
1万
查看次数

如何调整在本地模式下运行的Spark应用程序的内存

使用本地模式运行Spark Application,我使用了命令,例如:

spark-submit --master local[*] my_spark_application.py
Run Code Online (Sandbox Code Playgroud)

在这种情况下,剂量意味着我的应用程序使用了我本地计算机的所有内存?其他参数,如驱动程序内存和执行程序内存是否仍然有效?

apache-spark

4
推荐指数
1
解决办法
1969
查看次数

ValueError:提供'c'kwarg或'color'kwarg但不是两者兼而有之; 它们不同但功能重叠

我试图在Python Data Science Essential一书中运行一个例子.但是,当我运行它时,它出现了错误.实际上,我刚开始学习python.所以,我觉得很难解决这些错误.请帮我.这是代码:

In:
import pandas as pd
import numpy as np
In: colors = list()
In: palette = {0: "red", 1: "green", 2: "blue"}
In:
for c in np.nditer(iris.target): colors.append(palette[int(c)])
    # using the palette dictionary, we convert
    # each numeric class into a color string
In: dataframe = pd.DataFrame(iris.data,
columns=iris.feature_names)
In: scatterplot = pd.scatter_matrix(dataframe, alpha=0.3,
figsize=(10, 10), diagonal='hist', color=colors, marker='o',
grid=True)
Run Code Online (Sandbox Code Playgroud)

这是错误:

()中的ValueError Traceback(最近一次调用最后)1 scatterplot = pd.scatter_matrix(dataframe,alpha = 0.3,----> 2 figsize =(10,10),diagonal ='hist',color = colors,marker = 'O',网格= TRUE) …

python matplotlib pandas

2
推荐指数
1
解决办法
2417
查看次数