我正在尝试使用 pyspark 中的 JDBC 连接器从 MySQL 数据库读取表。我读取表格的脚本是:
query = "SELECT * FROM C WHERE hitId = 4235441"
readConfig = {
"driver": driver,
"url": url,
"dbtable": tableName,
"user": user,
"password": password,
"query_custom": query
}
saveLocation = mountPoint + "/" + tableName
print(saveLocation)
readDF = spark.read.format("jdbc").options(**readConfig).schema(tableSchema).load()
readDF.write.format("delta").option("mergeSchemas", "True").mode("overwrite").save(saveLocation)
我试图只读取 hitId 为 4235441 的特定行。
问题是,仍然读取整个表而不是满足自定义查询的行。 任何人都可以指出我的脚本中有什么问题,或者是否有人知道任何其他方法来实现目标?
我被困了很长一段时间,所以非常感谢任何帮助。
最佳答案
在dbtable
选项附近的readConfig
中,您指定table_name。相反,请尝试指定查询
,如下所示
query = "SELECT * FROM C WHERE hitId = 4235441"
readConfig = {
"driver": driver,
"url": url,
"dbtable": query,
"user": user,
"password": password,
}
关于mysql - 使用 JDBC 连接器读取 Spark 中 MySQL 表的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68199992/