无法使用Scala在数据框中写入CSV的日期字段



在Scala中将数据帧写入CSV LD时,日期字段被转换为数字-1479740431158000

我尝试按照各种选项进行操作,但是没有任何选择

有什么方法可以将字段以正确格式写入CSV?我正在使用Spark 2.0

scala> tgt.write.format("com.databricks.spark.csv").option("header", "false").option("dateFormat", "MM/dd/yyyy HH:mm:ss").save("/data/mi30/apps.csv")
scala> tgt.write.format("com.databricks.spark.csv").option("header", "false").option("dateFormat", "mm/dd/yyyy HH:mm:ss").save("/data/mi30/apps.csv")
scala> tgt.write.format("com.databricks.spark.csv").option("header", "false").option("dateFormat", "yyyy-mm-dd hh:mm:ss").save("/data/mi30/apps.csv")
scala> tgt.write.format("com.databricks.spark.csv").option("header", "true").option("dateFormat", "yyyy-mm-dd hh:mm:ss").save("/data/mi30/apps.csv")
scala> tgt.write.format("com.databricks.spark.csv").option("header", "true").option("dateFormat", "yyyy-MM-dd HH:mm:ssX").save("/data/mi30/apps.csv")
scala> tgt.write.format("com.databricks.spark.csv").option("header", "true").option("dateFormat", "yyyy-MM-dd HH:mm:ssS").save("/data/mi30/apps.csv")
scala> tgt.write.format("com.databricks.spark.csv").option("header", "true").option("dateFormat", "yyyy-MM-dd HH:mm:ss:S").save("/data/mi30/apps.csv")
scala> tgt.printSchema
root
 |-- empno: integer (nullable = true)
 |-- ename: string (nullable = true)
 |-- message_id: string (nullable = true)
 |-- deptno: integer (nullable = true)
 |-- md5value: string (nullable = true)
 |-- batchid: string (nullable = true)
 |-- currind: string (nullable = true)
 |-- start_date: timestamp (nullable = true)
 |-- end_date: timestamp (nullable = true)
 |-- update_date: timestamp (nullable = true)

spark 2.0.0编写日期格式存在一些问题,但此问题已在Spark 2.0.1中固定。请检查https://github.com/databricks/spark-csv/issues/392。另外,您应该使用" CSV"而不是" com.databricks.spark.csv",因为它已包含在Apache-Spark的最新版本中。因此您可以使用

tgt.write.format("csv").option("header", "false").option("dateFormat", "yyyy-MM-dd").save("/data/mi30/apps.csv")

相关内容

  • 没有找到相关文章

最新更新