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) に起因する文字列