Как сохранить массив bigint в файле в Pyspark? - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть UDF, который возвращает массив bigint. Я хочу сохранить это в файле кластера Pyspark.

Пример данных -

[
    Row(Id='ABCD505936', array=[0, 2, 5, 6, 8, 10, 12, 13, 14, 15, 18]),
    Row(Id='EFGHI155784', array=[1, 2, 4, 10, 16, 22, 27, 32, 36, 38, 39, 40])
]

Я попытался сохранить его так -

df.write.save("/home/data", format="text", header="true", mode="overwrite")

Но он выдает сообщение об ошибке -

py4j.protocol.Py4JJavaError: Произошла ошибка при вызове o101.save. : org. apache .spark. sql .AnalysisException: Источник текстовых данных не поддерживает тип данных массива.;

Может кто-нибудь помочь мне?

1 Ответ

0 голосов
/ 21 февраля 2020

попробуйте это:

from pyspark.sql import functions as F

df.withColumn(
    "array",
    F.col("array").cast("string")
).write.save(
    "/home/data", format="text", header="true", mode="overwrite"
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...