【Spark】Spark 并行查询 Greenplum

本文介绍了如何利用Spark SQL的JDBC连接优化查询Greenplum的效率。通过设置`numPartitions`, `partitionColumn`, `lowerBound`, `upperBound`或构造`dbtable`来创建多个Task实现并行查询,提高数据读取速度。同时分析了两种方法的优缺点,第一种可能造成数据分布不均,而第二种方法通过自定义SQL实现更精确的控制,但代码相对复杂。" 121491545,11472815,Linux文件管理:删除、目录操作与IO重定向,"['Linux', 'bash', '运维', '云计算', '云原生']
摘要由CSDN通过智能技术生成

本文结构如下:

  • 前言
  • Spark SQL 几个属性介绍
  • Spark 并行查询
  • 总结

一、前言

Spark 支持通过 JDBC 连接关系型数据库,连接方式如下:

// Note: JDBC loading and saving can be achieved via either the load/save or jdbc methods
// Loading data from a JDBC source
val jdbcDF = spark.read
  .format("jdbc")
  .option("url", "jdbc:postgresql:dbserver")
  .option("dbtable", "schema.tablename")
  .option("user", "username")
  .option("password", "password")
  .load()

val connectionProperties = new Properties()
connectionProperties.put("user", "username")
connectionProperties.put("password", "password")
val jdbcDF2 = spark.read
  .jdbc("jdbc:postgresql:dbserver", "schema.tablename", connectionProperties)
// Specifying the custom data types of the read schema
connectionProperties.put("customSchema", "id DECIMAL(38, 0), name STRING")
val jdbcDF3 = spark.read
  .jdbc("jdbc:postgresql:dbserver", "schema.tablename", connectionProperties)

// Saving data to a JDBC source
jdbcDF.write
  .format("jdbc")
  .option("url", "jdbc:postgresql:dbserver")
  .option("dbtable", "schema.tablename")
  .option("user", "username")
  .option("password", "
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值