首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过Spack JDBC选择特定的列?

如何通过Spack JDBC选择特定的列?
EN

Stack Overflow用户
提问于 2016-10-04 03:04:34
回答 2查看 2.1K关注 0票数 1

现在我正在使用Spark连接我的oracle数据库。但是,有一个名为“带有时区的时间戳”的列类型,它是Oracle中的一个特定列。当我从包含此类型列的表中加载数据时,它将引发一个错误"java.sql.SQLException:不支持的类型-101“。

有人知道如何从表中加载特定的列吗?然后,我可以避免选择“带有时区的时间戳”列。如果有人能找出"java.sql.SQLException:不受支持的类型-101“错误会更好。但我觉得这可能是星火的臭虫。

我的代码如下,非常感谢。

代码语言:javascript
复制
spark = SparkSession\
    .builder\
    .appName("TestSQL")\
    .getOrCreate()
orc = spark.read \
    .format("jdbc") \
    .option("url", "jdbc:oracle:thin:xxx/xxx@IP:1521/database") \
    .option("dbtable", "xxx.xxx") \
    .load() 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-04 03:41:26

options中,您可以传递sql query in dbtable密钥。在sql查询中,可以选择所需的列。

例如:

代码语言:javascript
复制
final String dbTable =
        "(select emp_no, concat_ws(' ', first_name, last_name) as full_name from employees) as employees_name";

Dataset<Row> jdbcDF = 
        sparkSession.read().jdbc(CONNECTION_URL, dbTable, "emp_no", 10001, 499999, 10, connectionProperties);

*代码在java中

来源:使用Spark2.0数据源API加载数据库数据

票数 0
EN

Stack Overflow用户

发布于 2016-10-04 04:53:14

另一种方法可以是在Oracle上创建视图,这样您就可以在DB本身中处理Oracle特定的数据类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39843525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档