我用的是javaspark。
我尝试按日期分区列写入配置单元表,我尝试的是:
Dataset<Row> ds = dataframe.select(cols).withColumn("load_date", function.lit("08.07.2018").cast("date"));
ds.write().mode(mode).partitionBy("load_date").save(hdfsDirectory);
在运行下面的行之后,我在hdfs中看到以下目录:
/load_date=__HIVE_DEFAULT_PARTITION__
这意味着空值。
那么我怎样才能按日期写分区呢?
谢谢。
2条答案
按热度按时间dfuffjeb1#
使用
cast
日期必须采用标准格式(年-月-日)否则使用
o.a.s.sql.functions.to_date
函数并提供与SimpleDateFormat
iugsix8n2#
更简单的方法是使用以下函数
from_unixtime(unix_timestamp('2016/06/01','yyyy/MM/dd'),'yyyyMMdd')
我更喜欢使用sparksql来实现这一点