2017-10-13 3 views
1

Je me connecte à hbase (ver 1.2) via phoenix (4.11) queryserver de Spark 2.2.0, mais la structure de données renvoie la seule structure de table avec des lignes vides alors que les données sont présent dans le tableau. Voici le code que j'utilise pour me connecter à queryserver.Spark dataframe renvoyant uniquement la structure lorsqu'il est connecté au serveur de requêtes Phoenix

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

Quelqu'un peut-il s'il vous plaît aidez-moi à résoudre ce problème. Merci d'avance

Répondre

0

Si vous utilisez spark2.2, la meilleure approche serait de charger directement via pheonix en tant que dataframe. De cette façon, vous ne fournirez que l'URL du zookeeper et vous pourrez fournir un prédicat pour charger uniquement les données requis et non l'ensemble des données.

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) 

Lire this pour obtenir plus d'informations sur table RDD et de sauver dataframes et années RDD.

+0

Merci pour la réponse. comme nous ruinons hbase en mode sudo, nous n'avons pas url zookeeper, D'où je suis allé pour queryserver jdbc clint mince. – Augustine

+0

J'utilise zookeepr maintenant, ainsi que le code dataframe mentionné dans https://phoenix.apache.org/phoenix_spark.html. J'obtiens cette erreur ConnectionQueryServicesImpl: HConnection établie. Stacktrace à titre d'information: hconnection-0x26d820eb java.lang.Thread.getStackTrace (source inconnue)
Augustine

+0

Fournissez votre code et le journal complet s'il vous plaît. – WonderChild