2017-10-13 69 views
1

我通過phoenix(4.11)從Spark 2.2.0查詢服務器連接到hbase(版本1.2),但數據框返回的是空行的唯一表結構數據是目前在表中。 這是我用來連接到查詢服務器的代碼。當連接到Phoenix查詢服務器時,Spark數據幀僅返回結構

// ---jar ----phoenix-4.11.0-HBase-1.2-thin-client.jar<br> 
val prop = new java.util.Properties 
prop.setProperty("driver", "org.apache.phoenix.queryserver.client.Driver") 
val url = "jdbc:phoenix:thin:url=http://localhost:8765;serialization=PROTOBUF" 
val d1 = spark.sqlContext.read.jdbc(url,"TABLE1",prop) 
d1.show() 

任何人都可以請幫我解決這個問題。在此先感謝

回答

0

如果您使用的是spark2.2,更好的方法是直接通過pheonix作爲數據框加載。這種方式僅提供zookeeper url,您可以提供一個謂詞,以便只加載數據而不是整個數據。

import org.apache.phoenix.spark._ 
import org.apache.hadoop.conf.Configuration 
import org.apache.spark.sql.SparkSession 

val configuration = new Configuration() 
configuration.set("hbase.zookeeper.quorum", "localhost:2181"); 
val spark = SparkSession.builder().master("local").enableHiveSupport().getOrCreate() 
val df=spark.sqlContext.phoenixTableAsDataFrame("TABLE1",Seq("COL1","COL2"),predicate = Some("\"COL1\" = 1"),conf = configuration) 

閱讀this瞭解有關獲取表格作爲rdd和保存數據框架和rdd的更多信息。

+0

感謝您的回覆。因爲我們在sudo模式下破壞hbase我們沒有zookeeper url,所以我去了queryserver jdbc thin clint。 – Augustine

+0

我現在正在使用zookeepr,也是https://phoenix.apache.org/phoenix_spark.html中提到的數據幀代碼。我得到這個錯誤 ConnectionQueryServicesImpl:HConnection建立。 Stacktrace僅供參考:hconnection-0x26d820eb java.lang.Thread.getStackTrace(未知源)
Augustine

+0

請提供您的代碼和完整日誌。 – WonderChild

相關問題