gpt4 book ai didi

scala - Spark 读取为 jdbc 返回所有行作为列名

转载 作者:行者123 更新时间:2023-12-04 13:34:16 25 4
gpt4 key购买 nike

我在 Scala 2.12 中使用 Spark 3.x SQL 查询 Spark 的数据库表。我遵循了互联网上给出的例子。
我正在使用的数据库:Spark SQL 的数据库并使用 Centos 7。我正在查询的表(示例)具有以下列:

create table example( tutorial_title VARCHAR(22) NOT NULL) ;
var example= spark.read.format("jdbc")
.option("url", "jdbc:hive2://localhost:10000/test2")
.option("dbtable", "example")
.option("user", "username")
.option("password", "123456")
.option("fetchsize", "10")
.option("driver", "org.apache.hive.jdbc.HiveDriver")
.load()
这给了我以下输出:
+-------+-------
|tutorial_title|
+-------+-------
|tutorial_title|
|tutorial_title|
|tutorial_title|
+-------+-------
即在不提供数据的情况下为每一行重复列名。我的表有 3 行。我试过更改 db 中的行数,我的输出也相应更改。
如果我使用 ./bin/spark-sql 并选择表,它会显示实际记录。但是 ./bin/Spark-shell 将列名作为结果/记录。
spark-sql 和 beeline 客户端具有正确的记录 但是 Spark 的 read.format("jdbc") 和 Spark-shell 具有上述错误记录。

最佳答案

嘿,您可以尝试像这样给出表名。

var example= spark.read.format("jdbc")
.option("url", "jdbc:hive2://localhost:10000/test2")
.option("dbtable", "test2.example")
.option("user", "username")
.option("password", "123456")
.option("fetchsize", "10")
.option("driver", "org.apache.hive.jdbc.HiveDriver")
.load()
即使您尝试使用查询来获取,而不是使用
select * from table_name
你应该用这个
select * from db_name.table_name

关于scala - Spark 读取为 jdbc 返回所有行作为列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63177736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com