问题描述
当rdd是自定义的list的时候可以这么写valrdd=List((1,"lilei",14),(2,"hanmei",18),(3,"someone",38))vallocalData=sc.parallelize(rdd).map(convert)localData.saveAsHadoopDataset(jobConf)defconvert(triple:(String,String,String))={valp=newPut(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))(newImmutableBytesWritable,p)}那读一个hdfs上的文件的时候要怎么转换?那在千万条数据的情况下需要怎么设置么?0.98的可以设置不自动提交而是5M一提但是1.0以后好像没有那个方法了啊
解决方案
解决方案二:
saveAsHadoopDataset,有这个方法么?我在API文档中没有看到这个函数呢可不可以使用mapPartition方法,然后在里面把一个partition中的数据存入一个List中,然后将此list插入hbase中
解决方案三:
那读一个hdfs上的文件的时候要怎么转换?如果这样,可以直接试验下:hbaseorg.apache.hadoop.hbase.mapreduce.ImportTsv
时间: 2025-01-02 15:26:53