Mic*_*hal 12 dataframe apache-spark apache-spark-sql pyspark
我想对单个列执行操作.不幸的是,在我转换该列之后,它现在不再是它来自的数据帧的一部分,而是一个Column对象.因此,它无法收集.
这是一个例子:
df = sqlContext.createDataFrame([Row(array=[1,2,3])])
df['array'].collect()
Run Code Online (Sandbox Code Playgroud)
这会产生以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'Column' object is not callable
Run Code Online (Sandbox Code Playgroud)
如何collect()在单个列上使用该功能?
zer*_*323 19
只需选择并.rdd:
df.select("array").rdd.flatMap(lambda x: x).collect()
Run Code Online (Sandbox Code Playgroud)
编辑23/1/2017
从Spark 2.0.0开始,您需要明确指定flatMap才能使用select
df.select("array").flatMap(lambda x: x).collect()
## [[1, 2, 3]]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13492 次 |
| 最近记录: |