gpt4 book ai didi

scala - 在 Spark JDBC 读取方法中使用谓词

转载 作者:可可西里 更新时间:2023-11-01 14:26:27 26 4
gpt4 key购买 nike

我正在将数据从 sql server 拉到 hdfs。这是我的片段,

val predicates = Array[String]("int_id < 500000", "int_id >= 500000 && int_id < 1000000")

val jdbcDF = spark.read.format("jdbc")
.option("url", dbUrl)
.option("databaseName", "DatabaseName")
.option("dbtable", table)
.option("user", "***")
.option("password", "***")
.option("predicates", predicates)
.load()

我的 Intellij IDE 一直这么说

"Type mismatch, expected Boolean or Long or Double or String, Actual : Array[String]"

在谓词中。不知道这有什么问题。谁能看出这是怎么回事?另外,我如何在这里使用提取大小?

谢谢。

最佳答案

option 方法只接受BooleanLongDoubleStrings。要将 predicates 作为 Array[String] 传递,您必须使用 jdbc 方法而不是在 format 方法。

val predicates = Array[String]("int_id < 500000", "int_id >= 500000 && int_id < 1000000")

val jdbcDF = spark.read.jdbc(
url = dbUrl,
table = table,
predicates = predicates,
connectionProperties = new Properties(???) // user, pass, db, etc.
)

你可以看一个例子here .

关于scala - 在 Spark JDBC 读取方法中使用谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48677883/

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