利用spark读取phoenix(phoenix-spark)

为何不是jdbc访问phoenix?

具体原因参照phoenix官网地址:(https://phoenix.apache.org/phoenix_spark.html)

为何不是官网提倡的访问方式?

官网提倡:

import org.apache.spark.SparkContext
import org.apache.spark.sql.SQLContext
import org.apache.phoenix.spark._

val sc = new SparkContext("local", "phoenix-test")
val sqlContext = new SQLContext(sc)

val df = sqlContext.load(
  "org.apache.phoenix.spark",
  Map("table" -> "TABLE1", "zkUrl" -> "phoenix-server:2181")
)

df
  .filter(df("COL1") === "test_row_1" && df("ID") === 1L)
  .select(df("ID"))
  .show

但是实际上,spark2.0+版本已经不建议使用sqlContext.load()方法了,而且这种方式也有一些bug会导致phoenix数据取不出来。

正确的连接phoenix的姿势!!!

主要代码如下:

val spark = SparkSession.builder()
      .master("local[*]")
      .getOrCreate()

    val conf = new Configuration
    conf.addRe
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值