我已經從HBase Table(PHOENIX)創建了一個DataFrame,它有5億行。在DataFrame中,我創建了一個JavaBean的RDD,並使用它來加入文件中的數據。PHOENIX SPARK - 將數據表格載入數據框
Map<String, String> phoenixInfoMap = new HashMap<String, String>();
phoenixInfoMap.put("table", tableName);
phoenixInfoMap.put("zkUrl", zkURL);
DataFrame df = sqlContext.read().format("org.apache.phoenix.spark").options(phoenixInfoMap).load();
JavaRDD<Row> tableRows = df.toJavaRDD();
JavaPairRDD<String, AccountModel> dbData = tableRows.mapToPair(
new PairFunction<Row, String, String>()
{
@Override
public Tuple2<String, String> call(Row row) throws Exception
{
return new Tuple2<String, String>(row.getAs("ID"), row.getAs("NAME"));
}
});
現在我的問題 - 讓我們說這個文件有2個唯一的與表匹配的條目。整個表是作爲RDD加載到內存中的,還是隻有來自表的匹配200萬條記錄纔會作爲RDD加載到內存中?
Hi @Mohan您好,請讓我知道'DataFrame df = sqlContext.read()。format(「org.apache.phoenix.spark」)。options(phoenixInfoMap).load()'方法的構建依賴關係。我正在做同樣的事情,但得到'java.lang.NoSuchMethodError' – Explorer