首页 > 数据库 > mysql教程 > 如何使用 PySpark 的 JDBC 从外部数据库获取特定查询结果?

如何使用 PySpark 的 JDBC 从外部数据库获取特定查询结果?

Linda Hamilton
发布: 2024-11-30 07:34:15
原创
441 人浏览过

How Can I Fetch Specific Query Results from an External Database Using PySpark's JDBC?

在 Apache Spark 2.0.0 中从外部数据库获取特定查询结果

使用 PySpark 在 Apache Spark 2.0.0 中处理外部数据库时,用户可能希望从特定查询中获取数据,而不是获取整个表。这可以增强性能并减少数据传输。

问题:

在以下 PySpark 代码中,从名为“schema.tablename”的数据库表加载 df DataFrame 。我们如何修改代码以从自定义查询的结果集中获取数据?

from pyspark.sql import SparkSession

spark = SparkSession\
    .builder\
    .appName("spark play")\
    .getOrCreate()    

df = spark.read\
    .format("jdbc")\
    .option("url", "jdbc:mysql://localhost:port")\
    .option("dbtable", "schema.tablename")\
    .option("user", "username")\
    .option("password", "password")\
    .load()
登录后复制

答案:

获取自定义查询的结果集查询,将查询作为 Spark DataFrameReader 选项中的“dbtable”参数提供。查询必须用括号括起来,并为临时表名称起别名。

...
.option("dbtable", "(SELECT foo, bar FROM schema.tablename) AS tmp")
...
登录后复制

通过将子查询作为“dbtable”参数传递,Spark 将执行查询并将结果数据加载到 DataFrame 中。这允许用户从外部数据库检索特定数据,而无需获取整个表的开销。

以上是如何使用 PySpark 的 JDBC 从外部数据库获取特定查询结果?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板