Dataproc spark job无法从bigtable扫描记录

问题描述 投票:0回答:1

我们正在使用newAPIHadoopRDD扫描bigtable并在Rdd中添加记录。 Rdd使用newAPIHadoopRDD填充较小的(比如少于100K记录)bigtable。但是,它无法从更大的(例如6M记录)bigtable中将记录加载到Rdd中。

SparkConf sparkConf = new SparkConf().setAppName("mc-bigtable-sample-scan")
JavaSparkContext jsc = new JavaSparkContext(sparkConf);

Configuration hbaseConf = HBaseConfiguration.create();
hbaseConf.set(TableInputFormat.INPUT_TABLE, "listings");
Scan scan = new Scan();
scan.addColumn(COLUMN_FAMILY_BASE, COLUMN_COL1);
hbaseConf.set(TableInputFormat.SCAN, TableMapReduceUtil.convertScanToString(scan));
JavaPairRDD<ImmutableBytesWritable, Result> source = jsc.newAPIHadoopRDD(hbaseConf, TableInputFormat.class,
            ImmutableBytesWritable.class, Result.class);
System.out.println("source count " + source.count());

计数适合小桌子。但它对于较大的表显示为零。

尝试了许多不同的配置选项,如增加驱动程序内存,执行程序数量,工作人员数量但无效。

有人可以帮忙吗?

apache-spark hbase google-cloud-dataproc bigtable
1个回答
1
投票

我的错。在我的代码中发现了这个问题。我试图扫描的列COLUMN_COL1在较大的bigtable中不可用,因此我的计数出现在0。

© www.soinside.com 2019 - 2024. All rights reserved.