2017-07-13 5 views
0

私はSparkを初めて使用しており、Spark 1.6.3からVertica 8.1.1への接続を試みています。私は次のエラーSparkのVerticaテーブルを表示できません

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

に遭遇していると私は、テーブルを表示しようとすると、それは何も

を返していません

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(); 

を:私は照会するにVerticaが提供する次のコードを使用しています

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

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

私が間違ってやっていることや、私がどのように接続できるかについてのご意見は、大変に感謝しています。おかげさまで

答えて

0

Verticaへの接続が正常に機能していないと、「show tables」クエリで例外が発生します。

あなたのcodemonkeyユーザーに割り当てられている権限を確認してください。彼らはcustDimにアクセスできますか?

custDimの構造を確認してください。それは列 "a"を持っていますか?

あなたのvalc行をコメントアウトし、その上にdf.show()を入れてもう一度やり直してください。これは少なくとも、あなたのデータフレームにどの列が含まれているかを伝えます。

+0

応答Daveに感謝します。 df.show()は私にも同様のエラーを与えます。エラー:値showはorg.apache.spark.sql.DataFrameReaderのメンバーではありません – chewbaca

+0

sqlContext.sql( "show tables")。show()はsqlContext.sql( "select * from table")を試してみてください。 () –

+0

代わりにsqlContext.read.format( "jdbc")を試しましたか?あなたのval opt = Mapでも、テーブルはdbtableかもしれないと思います。あなたのコードはhttps://my.vertica.com/get-started-vertica/integrating-apache-spark/に似ています。あなたのSPARK_HOMEが正しく設定されているように思えます。 verticaドライバのls $ SPARK_HOME/jars/ver *をダブルチェックしてください –

関連する問題