如何在 Spark 中收集单个列?
How do I collect a single column in Spark?
我想对单个列执行操作。
不幸的是,在我转换该列之后,它现在不再是它来自的数据框的一部分,而是一个列 object。因此无法收藏。
这是一个例子:
df = sqlContext.createDataFrame([Row(array=[1,2,3])])
df['array'].collect()
这会产生以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'Column' object is not callable
如何在单个列上使用 collect()
函数?
Spark >= 2.0
从 Spark 2.0.0 开始,您需要明确指定 .rdd
才能使用 flatMap
df.select("array").rdd.flatMap(lambda x: x).collect()
Spark < 2.0
只是 select
和 flatMap
:
df.select("array").flatMap(lambda x: x).collect()
## [[1, 2, 3]]
我想对单个列执行操作。 不幸的是,在我转换该列之后,它现在不再是它来自的数据框的一部分,而是一个列 object。因此无法收藏。
这是一个例子:
df = sqlContext.createDataFrame([Row(array=[1,2,3])])
df['array'].collect()
这会产生以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'Column' object is not callable
如何在单个列上使用 collect()
函数?
Spark >= 2.0
从 Spark 2.0.0 开始,您需要明确指定 .rdd
才能使用 flatMap
df.select("array").rdd.flatMap(lambda x: x).collect()
Spark < 2.0
只是 select
和 flatMap
:
df.select("array").flatMap(lambda x: x).collect()
## [[1, 2, 3]]