我在sparksql中有数据类型为date的列。 CREATE TABLE ABC(startDate DATE, EndDate DATE....
我把数据作为 LOAD DATA INPATH './input/user.txt' INTO TABLE ABC
在user.txt中,数据如下
2016/06/12 2016/06/15
2016/06/12 2016/06/15
但它加载数据
null null
null null
如果是的话
2016-06-12 2016-06-15
2016-06-12 2016-06-15
然后它正确地获取数据。
日期分隔符为“/”时如何处理数据?
我不想替换输入文件中的分隔符。
请帮帮我。谢谢。
2条答案
按热度按时间pgx2nnw81#
我以前在 hive 里遇到过这个问题。我找到了解决办法。首先将它们作为字符串而不是数据类型date加载
前任:
然后我使用字符串函数从上述字段中提取日期/月/年。例如
另一种方法是用“-”替换“/”,然后将它们转换为日期类型并使用日期函数
例子
以上都是如何在Hive中实现的。要在spark中处理这个问题,还需要首先将它们作为字符串加载到Dataframe中。
希望这有帮助。
xa9qqrwz2#
我在sparkql的spark2.0预览版上找到了另外一种方法