Я загружаю mongodb в таблицу кустов и пытаюсь решить Unsupported NullType, когда saveAsTable. Пример схемы данных
root
|-- level1: struct (nullable = true)
| |-- level2: struct (nullable = true)
| | |-- level3_1: null (nullable = true)
| | |-- level3_2: array (nullable = true)
| | | |-- element: struct (containsNull = true)
| | | | |-- level4: null (nullable = true)
Я пробовал functions.lit как
df = df.withColumn("level1.level2.level3_1", functions.lit("null").cast("string"));
.withColumn("level1.level2.level3_2.level4", functions.lit("null").cast("string"));
, но результат похож на
root
|-- level1: struct (nullable = true)
| |-- level2: struct (nullable = true)
| | |-- level3_1: null (nullable = true)
| | |-- level3_2: array (nullable = true)
| | | |-- element: struct (containsNull = true)
| | | | |-- level4: null (nullable = true)
|-- level1.level2.level3_1: string (nullable = false)
|-- level1.level2.level3_2.level4: string (nullable = false)
Я также проверил df.na (). fill (), но, похоже, это не меняет схему.
Желаемый результат -
root
|-- level1: struct (nullable = true)
| |-- level2: struct (nullable = true)
| | |-- level3_1: string (nullable = true)
| | |-- level3_2: array (nullable = true)
| | | |-- element: struct (containsNull = true)
| | | | |-- level4: string (nullable = true)
, и я могу использовать загруженные данные mongodb, сохраняя их в виде таблицы в кусте
кто-нибудь работал над этим и мог бы дать мне совет, как разыгрывать вложенный тип null или как работать с nulltype в java. Подумайте о систематическом / общем решении, которое может масштабироваться для более сложных данных. Большое спасибо