Я ищу документацию о том, как добавить схему в трубу PySpark при преобразовании rdd в Dataframe
У меня есть следующий канал
result_columns=[
"src",
"dst",
"other1",
"other2",
"other3",
"other4",
"other5"
]
result_schema=StructType(
[
StructField("src",StringType(), False),
StructField("dst",StringType(), False),
StructField("other1",StringType(), True),
StructField("other2",LongType(), False),
StructField("other3",LongType(),True),
StructField("other4",DoubleType(), True),
StructField("other5",TimestampType(), False)
]
)
result_df=step1_df \
.rdd \
.somesteps() \
.reduceByKey(lambda x,y: x + y) \
.map(lambda x : myfunction(x)) \
.flatMap(lambda list: [x for x in list] ) \
.toDF(result_columns) \
.collect()
Теперь я хочу указатьтипы данных каждого столбца Что работает, но не распознает столбцы типов данных с только значениями NULL правильно, это
.toDF(result_columns,sampleRatio=0.2)
с sampleRatio между 0 и 1
, которое я хочу передатьСхема для команды toDF
Я попробовал следующие подходы:
.toDF(result_columns,result_schema)
это не удается с ошибкой TypeError: '<' не поддерживается между экземплярами StructType и float'</strong>
.toDF(result_columns,result_schema)
с ошибкой TypeError: toDF () получил несколько значений для аргумента' схема '
.toDF(result_columns,schema=result_schema, samplingRatio=None, verifySchema=True)
с ошибкой TypeError: toDF () получил несколько значений для аргумента 'схема'
.toDF(result_columns,6)
или ввод любого другого числа работает без ошибок, но не изменяет окончательные типы данных
Чтоя делаю неправильно, где труба соmmand для toDF (), документированный для PySpark?