我有一段代码,在代码的最后,我写的数据文件。
逻辑是这样的,有时数据可能是空的,因此我得到了下面的错误。
df.write.format("parquet").mode("overwrite").save(somePath)
org.apache.spark.sql.AnalysisException: Parquet data source does not support null data type.;当我打印"df“模式时,我得到了下面的内容。
df.schema
res2: org.apache.spark.sql.types.StructType =
StructType(
StructField(rpt_date_id,IntegerType,true),
StructField(rpt_hour_no,ShortType,true),
StructField(kpi_id,IntegerType,false),
StructField(kpi_scnr_cd,StringType,false),
StructField(channel_x_id,IntegerType,false),
StructField(brand_id,ShortType,true),
StructField(kpi_value,FloatType,false),
StructField(src_lst_updt_dt,NullType,true),
StructField(etl_insrt_dt,DateType,false),
StructField(etl_updt_dt,DateType,false)
)是否有办法只使用架构编写空文件,或者在空时根本不写文件?谢谢
发布于 2019-11-22 17:01:54
“还是当文件为空时根本不写?”检查df是否为空&然后只写它。
if (!df.isEmpty)
df.write.format("parquet").mode("overwrite").save("somePath")https://stackoverflow.com/questions/58998515
复制相似问题