Создание фрейма данных со сложной схемой, включающей MapType в pyspark - PullRequest
0 голосов
/ 27 января 2020

Я пытаюсь создать фрейм данных со следующей схемой:

|-- data: struct (nullable = true)
 |    |-- id: long (nullable = true)
 |    |-- keyNote: struct (nullable = true)
 |    |    |-- key: string (nullable = true)
 |    |    |-- note: string (nullable = true)
 |    |-- details: map (nullable = true)
 |    |    |-- key: string
 |    |    |-- value: string (valueContainsNull = true)

Это лучшее, что мне удалось сделать:

schema = StructType([
    StructField("id",LongType(), True),
    StructField("keyNote",StructType([
            StructField("key",StringType(),True),
            StructField("note",StringType(),True)
        ])),
    StructField("details",MapType(StringType, StringType, True))
    ])

df = spark\
    .createDataFrame([("idd",("keyy","notee"),("keyy","valuee")),schema])

Но я получаю исключение :

AssertionError: keyType должен быть DataType

1 Ответ

1 голос
/ 27 января 2020

Кажется, вы должны написать правильный синтаксис для MapType:

MapType(StringType(), StringType(), True)

Вместо StringType () вы написали StringType без скобок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...