2016-11-24 38 views
0

虽然在斯卡拉写一个数据帧到CSV LD日期字段是越来越转换为相同数量到csv - 1479740431158000无法写入日期字段的数据帧使用Scala的

我尝试以下各种选项,但没有工作

有没有办法以正确的格式获得用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) 

回答

0

有一些问题与星火2.0.0写日期的格式,但这一问题已被固定在星火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") 
相关问题