Согласно официальной документации , схема может быть StructType
или String
.
. Я могу посоветовать вам 2 решения:
1 - Выиспользуйте схему фиктивного файла
Если у вас есть один легкий файл с той же схемой (т.е. одна строка с такой же структурой), вы можете прочитать его как Dataframe, а затем использовать схему для других ваших файлов json:
df = spark.read.json("/path/to/dummy/file.json")
schm = df.schema
df = spark.read.json(path="abc.json", schema=schm)
2 - вы генерируете схему
Для этого шага необходимо указать имя столбца (и, возможно, также типы).Давайте предположим, что col
является диктовкой с (ключ, значение) как (имя столбца, тип столбца).
col_list = ['{col_name} {col_type}'.format(
col_name=col_name,
col_type=col_type,
) for col_name, col_type in col.items()]
schema_string = ', '.join(col_list)
df = spark.read.json(path="abc.json", schema=schema_string)