Как собрать один столбец в Spark?
Я хотел бы выполнить действие на одном столбце. К сожалению, после того, как я преобразовал этот столбец, он больше не является частью кадра данных, из которого он получен, а стал объектом Column. Как таковой, он не может быть собран.
Вот пример:
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()
для одного столбца?
Ответы
Ответ 1
Spark> = 2,0
Начиная с Spark 2.0.0, вам нужно явно указать .rdd
, чтобы использовать flatMap
df.select("array").rdd.flatMap(lambda x: x).collect()
Spark & lt; 2.0
Просто select
и flatMap
:
df.select("array").flatMap(lambda x: x).collect()
## [[1, 2, 3]]