2017-05-12 4 views
0

javaRDDを使用せずにdataframe(spark sql)を使用してHbaseからデータを取得する方法。 コード: -javaRDDを使用せずにhbaseからdataframeまでデータを取得する方法

SparkConf sconf = new SparkConf().setMaster("local").setAppName("Test"); 

    Configuration conf = HBaseConfiguration.create(); 
    JavaSparkContext jsc = new JavaSparkContext(sconf); 
    try { 
     HBaseAdmin.checkHBaseAvailable(conf); 
     System.out.println("HBase is running"); 
    } catch (Exception e) { 
     System.out.println("HBase is not running"); 
     e.printStackTrace(); 
    } 
    SQLContext sqlContext = new SQLContext(jsc); 

    String sqlMapping ="ROW String :ROW,city STRING r:city"; 
    HashMap<String, String> map = new HashMap<String, String>(); 
    map.put("hbase.columns.mapping", sqlMapping); 
    map.put("hbase.table", "emp1"); 
    DataFrame dataFrame1 = sqlContext.read().format("org.apache.hadoop.hbase.spark").options(map).load(); 

例外: - スレッドで 例外 "メイン" java.lang.IllegalArgumentExceptionが:無効hbase.columns.mappingの値は「ROWの文字列:ROW、都市列R:市の で組織.apache.hadoop.hbase.spark.DefaultSource.generateSchemaMappingMap(DefaultSource.scala:119) at org.apache.hadoop.hbase.spark.DefaultSource.createRelation(DefaultSource.scala:79) at org.apache.spark.sql (DataFrameReader.scala:119) at org.apache.spark.sql.DataFrameReade r.load(DataFrameReader.scala:109):java.lang.IllegalArgumentExceptionが:サポートされていないカラムのタイプ:dataframe.ParquetExample.main(ParquetExample.java:94) に起因する文字列

答えて

0
i have solve this exception "Unsupported column type :String" but 
    now getting another issue. 

Exception in thread "main" java.lang.NullPointerException 
    at org.apache.hadoop.hbase.spark.HBaseRelation.<init>(DefaultSource.scala:175) 
    at org.apache.hadoop.hbase.spark.DefaultSource.createRelation(DefaultSource.scala:78) 
    at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.apply(ResolvedDataSource.scala:158) 
    at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:119) 
    at org.apache.spark.sql.SQLContext.load(SQLContext.scala:1140) 
関連する問題