2016-12-16 196 views
0

我正在尝试阅读具有数据类型日期列为timestamp, length=9的Hive Table。 我的代码看起来像下面 -无法从Hive读取pstpark中的timstamp值(spark 1.6.1)

df = hc.sql("select * from schema.table") 

它可以读取所有其他列(数据类型= varchar)。

它要么读取null或日期栏给出none

我已打印df.dtypes,发现数据帧模式被正确地推断和日期列具有timestamp数据类型

令人惊讶的是相同的代码工作在notebook,只在spark-shell环境中失败。

有人能指导我什么可能是错误或限制,呈现此错误,我该如何纠正它?

回答

0

我在Spark中看到过这个问题,当数据类型是timestamp时它将显示为null,它是一个错误。有一种方法来解决它,你必须使用类似to_char(Column_name ,'YYYY-MM-DD HH-MM-SS') as column_name,这样的字符串读取日期列,然后将其转换为时间戳。如果你能告诉我源数据类型和你用来提取数据的工具,如sqoop,或者你是以某种形式的文件获取数据?我可以帮助你更好。

+0

谢谢..我在IBM Big Insights工具的Spark shell中进行编码。使用Hive Context从Hive表格(Big Insights)中读取数据 – CARTman