Apache spark 为什么在spark分区数据中将列重命名为c0、c1?
以下是我的原始数据Apache spark 为什么在spark分区数据中将列重命名为c0、c1?,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,以下是我的原始数据 Name |Date | +-----+----------+ |Azure|2018-07-26| |AWS |2018-07-27| |GCP |2018-07-28| |GCP |2018-07-28| 我使用日期列对数据进行了分区 udl_file_df_read.write.format("csv").partitionBy("Date").mode("append").save(outputPath) val events = spark.r
Name |Date |
+-----+----------+
|Azure|2018-07-26|
|AWS |2018-07-27|
|GCP |2018-07-28|
|GCP |2018-07-28|
我使用日期列对数据进行了分区
udl_file_df_read.write.format("csv").partitionBy("Date").mode("append").save(outputPath)
val events = spark.read.format("com.databricks.spark.csv").option("inferSchema","true").load(outputPath)
events.show()
输出列名为(c0,日期)
。我不知道为什么缺少原始列名,如何保留列名
注意:这不是一个重复的问题,因为以下原因,此处除分区列以外的列被重命名为c0,并且在选项中指定基本路径不起作用。您得到的列名类似于
c0
,因为问题中使用的CSV格式不保留列名
你可以试着用英语写作
udl_file_df_read
.write.
.option("header", "true")
...
同样地读
spark
.read
.option("header", "true")
您会得到像
c0
这样的列名,因为问题中使用的CSV格式不会保留列名
你可以试着用英语写作
udl_file_df_read
.write.
.option("header", "true")
...
同样地读
spark
.read
.option("header", "true")
当我写文件时,我可以通过将选项header设置为true来保留模式,我之前认为我只能使用此选项读取数据
udl_文件_df_read.write.option(“header”=“true”)。格式(“csv”).partitionBy(“Date”).mode(“append”).save(outputPath)在我写文件时,通过将选项头设置为true,我可以保留模式,我以前认为我只能使用此选项读取数据
udl_文件_df_read.write.option(“header”=“true”)。格式(“csv”).partitionBy(“Date”).mode(“append”).save(outputPath)谢谢,但我的要求是我需要csv格式的输出。当我们使用csv作为分区格式时,是否有其他方法保留列名?谢谢,但我的要求是我需要作为csv的输出格式。当我们使用csv作为分区格式时,还有其他方法保留列名吗?