Сгруппированные данные в фрейме со стрелкой apache - PullRequest
0 голосов
/ 20 февраля 2019
schema = StructType([
    StructField("title", StringType(), False),
    StructField("stringdataA", StringType(), False),
#     StructField("list", ArrayType( StructType([
#         StructField("A", IntegerType()  , False),
#         StructField("B", StringType()   , False),
#         StructField("C", TimestampType(), False)
#     ]))),
    StructField("stringdataB",  StringType(), False)])

    @pandas_udf(schema, PandasUDFType.GROUPED_MAP)
    def make_data(x):
        ~~ make data fitted in shcema

groupedList = df.groupby("groupkey").apply(make_data)

Функция 'make_data' создаст данные, которые вписываются в схему, которую я определил, но когда я добавил поле со структурой списка (map ()) в схему.Это дало мне ошибку, как показано ниже.Это действительно не поддерживается структура схемы?

Есть ли способ получить данные структуры списка (map ()), которые я могу обработать?

NotImplementedError: Неверный returnType с сгруппированной картой PandasПользовательские функции: StructType (List (StructField (title, StringType, false), StructField (stringdataA, StringType, false), StructField (список, ArrayType (StructType) (List (StructField (A, IntegerType, false), StructField (B, StringTy)), StructField (C, TimestampType, false))), true), true), StructField (stringdataB, StringType, false))) не поддерживается

1 Ответ

0 голосов
/ 25 февраля 2019

Я думаю, что ваши элементы списка StructType, который не поддерживается:

https://github.com/apache/spark/blob/4a4e7aeca79738d5788628d67d97d704f067e8d7/python/pyspark/sql/types.py#L1581

Если вы хотите подтвердить, попробуйте позвонить pyspark.sql.types.to_arrow_schema(schema) и посмотреть, что произойдет.

...