【发布时间】:2018-10-22 07:52:24
【问题描述】:
我想从 impala 表中获取子查询作为一个数据集。
这样的代码:
String subQuery = "(select to_timestamp(unix_timestamp(now())) as ts from my_table) t"
Dataset<Row> ds = spark.read().jdbc(myImpalaUrl, subQuery, prop);
但结果是错误的:
Caused by: java.sql.SQLDataException: [Cloudera][JDBC](10140) Error converting value to Timestamp.
我可以使用unix_timestamp函数,但是to_timestmap失败了,为什么?
我发现org.apache.spark.sql.execution.datasources.jdbc.JDBC.compute()中的代码存在一些问题:
sqlText = s"SELECT $columnList FROM ${options.table} $myWhereClause"
$columList 包含 " 就像 "col_name" 一样,当我删除 " 它工作正常。
【问题讨论】:
-
now()不是已经是时间戳了吗? -
我只是以
now()为例 -
谢谢,我自己解决了这个问题。
标签: jdbc apache-spark-sql impala