Вы прошли большую часть пути!
При вызове createDataFrame
с указанием схемы схема должна быть StructType
. Обычного списка недостаточно.
- Создать СДР из кортежей или списков из исходного СДР;
- Создание схемы , представленной
StructType
, соответствующей структуре кортежей или списков в RDD, созданном на шаге 1.
- Применение схемы к RDD с помощью метода createDataFrame, предоставляемого SparkSession.
Кроме того, первое поле в createDataFrame
представляет собой список строк, а не список значений для одной строки. Таким образом, один одномерный список приведет к ошибкам. Завершение в диктовку, которая явно определяет, какие столбцы содержат значения, является одним решением, но могут быть и другие.
Результат должен выглядеть примерно так:
df_test = spark.createDataFrame(
[{'col1': 'a string', 'col2': 1}],
schema = types.StructType([
types.StructField('col1', types.StringType(), True),
types.StructField('col2', types.IntegerType(), True)
])
)