【发布时间】:2017-08-16 04:40:15
【问题描述】:
Hive 表架构:
c_date date
c_timestamp timestamp
这是文本表
Hive 表数据:
hive> select * from all_datetime_types;
OK
0001-01-01 0001-01-01 00:00:00.000000001
9999-12-31 9999-12-31 23:59:59.999999999
spark作业后得到的csv:
c_date,c_timestamp
0001-01-01 00:00:00.0,0001-01-01 00:00:00.0
9999-12-31 00:00:00.0,9999-12-31 23:59:59.999
问题:
-
00:00:00.0添加到日期类型中 - 时间戳被截断到毫秒精度
有用的代码:
SparkConf conf = new SparkConf(true).setMaster("yarn-cluster").setAppName("SAMPLE_APP");
SparkContext sc = new SparkContext(conf);
HiveContext hc = new HiveContext(sc);
DataFrame df = hc.table("testdb.all_datetime_types");
df.printSchema();
DataFrameWriter writer = df.repartition(1).write();
writer.format("com.databricks.spark.csv").option("header", "true").save(outputHdfsFile);
我知道dateFormat 选项。但是date 和timestamp 列在 Hive 中可以有不同的格式。
我可以简单地将所有列转换为字符串吗?
【问题讨论】:
-
你能分享
df.printSchema()的输出吗?
标签: csv apache-spark hive apache-spark-sql databricks