首页 > 解决方案 > 从 SparkR 读取 Kudu

问题描述

在 Spark 中,我无法找到如何使用 SparkR 连接到 Kudu。如果我在 scala 中尝试以下操作:

import org.apache.kudu.spark.kudu._
import org.apache.kudu.client._
import org.apache.spark.sql.SQLContext
import org.apache.spark.sql.functions._
// Read kudu table and select data of August 2018
val df = spark.sqlContext.read.options(Map("kudu.master" -> "198.y.x.xyz:7051","kudu.table" -> "table_name")).kudu
df.createOrReplaceTempView("mytable")

它完美地工作。在 SparkR 中,我一直在尝试以下操作:

library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib")))
sc = sparkR.session(master = "local[*]", sparkConfig = list(spark.driver.memory = "2g"), sparkPackages = "org.apache.kudu:kudu-spark2_2.11:1.8.0")
sqlContext <- sparkRSQL.init(sc)
df = read.jdbc(url="198.y.x.xyz:7051",
               driver = "jdbc:kudu:sparkdb",
               source="jdbc",
               tableName = "table_name" 
               )

我收到以下错误:

Error in jdbc : java.lang.ClassNotFoundException: jdbc:kudu:sparkdb

尝试以下操作:

df = read.jdbc(url="jdbc:mysql://198.19.10.103:7051",
               tableName = "banglalink_data_table_1" 
               )

给出:

Error: Error in jdbc : java.sql.SQLException: No suitable driver

我找不到有关如何加载正确驱动程序的任何帮助。我认为使用 sparkPackages 选项是正确的,因为它没有错误。我究竟做错了什么??

标签: rapache-sparkjdbckudu

解决方案


推荐阅读