mysql - 使用 JDBC 连接器读取 Spark 中 MySQL 表的一部分

标签 mysql azure apache-spark jdbc pyspark

我正在尝试使用 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/

相关文章:

azure - 如果 Azure Function 无法处理消息,是否可以将 Azure 事件中心配置为保留消息?

python - AWS EMR Spark "No Module named pyspark"

azure - 如何从 Azure DevOps 服务迁移到 Azure DevOps Server

mysql - LEFT JOIN 在右表中添加更多字段

mysql - 选择 SUM() 查询的 MAX()

mysql - 如何在 MYSQL 查询中使用聚合函数连接表?

.net - 创建表 Controller 时 Azure 应用服务移动应用 .Net 后端问题

scala - 如何使用累加器对leftOuterJoin中没有匹配项的记录进行计数?

apache-spark - Hadoop在Spark中的等效配置

mysql - 如何更改 rake db :create:all in rails? 的 MySql 默认排序规则