當rdd是自定義的list的時候可以這么寫
val rdd = List((1,"lilei",14), (2,"hanmei",18), (3,"someone",38))
val localData = sc.parallelize(rdd).map(convert)
localData.saveAsHadoopDataset(jobConf)
def convert(triple: (String, String, String)) = {
val p = new Put(Bytes.toBytes(triple._1))
p.addColumn(Bytes.toBytes("cf"),Bytes.toBytes("name"),Bytes.toBytes(triple._2))
p.addColumn(Bytes.toBytes("cf"),Bytes.toBytes("age"),Bytes.toBytes(triple._3))
(new ImmutableBytesWritable, p)
}
那讀一個hdfs上的檔案的時候要怎么轉換?
那在千萬條資料的情況下需要怎么設定么? 0.98的可以設定不自動提交而是5M一提 但是1.0以后好像沒有那個方法了啊
uj5u.com熱心網友回復:
saveAsHadoopDataset,有這個方法么?我在API檔案中沒有看到這個函式呢
可不可以使用mapPartition方法,然后在里面把一個partition中的資料存入一個List中,然后將此list插入hbase中
uj5u.com熱心網友回復:
那讀一個hdfs上的檔案的時候要怎么轉換?如果這樣,可以直接試驗下:
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/88584.html
標籤:Spark
