2016-07-21 4 views
0

こんにちは私はスパークジョブからPhoenixのテーブルを作成する必要があります。私は以下の2つの方法を試しましたが、どちらも機能しませんが、これはまだサポートされていないようです。sparkからphoenixのテーブルを作成する

1)Dataframe.writeはまだテーブルが

df.write.format("org.apache.phoenix.spark").mode("overwrite").option("table", schemaName.toUpperCase + "." + tableName.toUpperCase ).option("zkUrl", hbaseQuorum).save() 

2以前に存在していることが必要です)我々はJDBCスルーフェニックスに接続し、statemntを作成、実行しようとした場合、我々は(解析エラーを取得し、同じ作成フェニックスの作品)

var ddlCode="create table test (mykey integer not null primary key, mycolumn varchar) " 

val driver = "org.apache.phoenix.jdbc.PhoenixDriver" 
val jdbcConnProps = new Properties() 
jdbcConnProps.setProperty("driver", driver); 
val jdbcConnString = "jdbc:phoenix:hostname:2181/hbase-unsecure" 
sqlContext.read.jdbc(jdbcConnString, ddlCode, jdbcConnProps) 

エラー: org.apache.phoenix.exception.PhoenixParserException:ERROR 601(42P00):構文エラー。 1行目、15列目に「作成」が発生しました。

これとは別の問題を抱えている人は誰ですか?

+0

私も同じように探していた。 – pjain

答えて

0

私は最終的にこれのための解決策で働いています。基本的に私は間違ってこれをSQLContextのメソッドを使用して読み取りを試みると思う。私は、この方法はデータソースを「読み込む」ように設計されていると思います。この問題を解決する方法は、基本的にPhoenixとの標準的なJDBC接続を開くことでした:上記の問題の解決策はありますか?

var ddlCode="create table test (mykey integer not null primary key, mycolumn varchar) " 
val jdbcConnString = "jdbc:hostname:2181/hbase-unsecure" 
val user="USER" 
val pass="PASS" 
var connection:Connection = null 
Class.forName(driver) 
connection = DriverManager.getConnection(jdbcConnString, user, pass) 
val statement = connection.createStatement() 
statement.executeUpdate(ddlCode) 
関連する問題