【发布时间】:2019-01-17 12:18:41
【问题描述】:
我正在使用 df.write 将 JSON 转换为 parquet 文件。在我的 JSON 文件中,我的所有列都是字符串,因此在读入数据帧时,我使用模式进行推断,并且文件中没有列的原因也在不断变化。在写入镶木地板时,我不想将它们写为字符串,而是希望将某些列更改为日期和小数。我知道我们可以在捕获到另一个 df 之前在 df select 的列级别中选择并进行强制转换。我不想这样做,因为我在文件中有 300 列,并且基于参数进行编程工作。有没有办法我们可以将它们作为模式放在文件中并执行它。
示例:
JSON 读取架构:
read_schema = StructType([
StructField("event_name" , StringType(), True),
StructField("dollar_balance" , StringType(), True),
])
Parquet 写入模式:
write_schema = StructType([
StructField("event_name" , StringType(), True),
StructField("dollar_balance" , DoubleType(), True),
])
也许是一个很长的问题。帮助将不胜感激。谢谢
【问题讨论】:
标签: json apache-spark dataframe pyspark parquet