无法显示来自 Spark 的 Vertica 表

Unable to display Vertica tables from Spark

我是 Spark 的新手,我正在尝试建立从 Spark 1.6.3 到 Vertica 8.1.1 的连接。我正在使用 Vertica 提供的以下代码进行查询:

import org.apache.spark.sql.SQLContext
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
val conf = new SparkConf().setAppName("vertica-spark-connector-testing").setMaster("local[1]")
val sc = new SparkContext(conf)
val sqlContext = new SQLContext(sc)
val host = "x.x.x.x"
val db = "db"
val table = "table"
val user = "user"
val password = "password"
val part = "12";
val opt = Map("host" -> host, "table" -> table, "db" -> db, "numPartitions" -> part, "user" -> user, "password" -> password)
val df = sqlContext.read.format ("com.vertica.spark.datasource.DefaultSource")
.options(opt).load()
val c = df.select("a").filter("a > 5").count
println(c)
sc.stop();

我遇到了以下错误

scala> val c = df.select("a").filter("a > 5").count :42: error: value select is not a member of org.apache.spark.sql.DataFrameReader val c = df.select("a").filter("a > 5").count

当我尝试显示表格时,它没有返回任何内容

scala> sqlContext.sql("show tables").show()

+---------+-----------+
|tableName|isTemporary|
+---------+-----------+
+---------+-----------+

任何关于我做错了什么的想法以及任何关于如何连接的帮助将不胜感激。 谢谢

您与 Vertica 的连接正常,否则您会在 "show tables" 查询中遇到异常。

检查分配给您的 codemonkey 用户的权限。他们可以访问 custDim 吗?

检查 custDim 的结构。它有 "a" 列吗?

注释掉您的 val c 行并将 df.show() 放在其上方,然后重试。这至少会告诉您数据框中包含哪些列。