我有 .csv 中的文件 HDFS . 我想把这些装进去 HBASE 不使用的表 Pig 脚本。还有别的办法吗?
.csv
HDFS
HBASE
Pig
sr4lhrrt1#
可能有几种方法。但有些选择如下。
ImportTsv
通过加载数据 Put s(即非散装):
Put
$ bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=a,b,c <tablename> <hdfs-inputdir>
要生成用于批量加载的存储文件,请执行以下操作:
$ bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=a,b,c -Dimporttsv.bulk.output=hdfs://storefile-outputdir <tablename> <hdfs-data-inputdir>
这些生成的存储文件可以通过第14.1.10节“completebulkload”加载到hbase中。例子 hbase> hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=, -Dimporttsv.columns="c1,c2,c3...." hdfs://servername:/tmp/yourcsv.csv ####选项2:自定义Map缩小方式编写mapreduce程序和csv解析器,以防需要解析复杂的csv请看这里的示例
hbase> hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=, -Dimporttsv.columns="c1,c2,c3...." hdfs://servername:/tmp/yourcsv.csv
1条答案
按热度按时间sr4lhrrt1#
可能有几种方法。但有些选择如下。
选项1:简单的方法是importtsv
ImportTsv
是一个将tsv格式的数据加载到hbase的实用程序。它有两种不同的用法:通过puts将hdfs中的tsv格式的数据加载到hbase中,以及通过completebulkload准备要加载的storefiles。通过加载数据
Put
s(即非散装):要生成用于批量加载的存储文件,请执行以下操作:
这些生成的存储文件可以通过第14.1.10节“completebulkload”加载到hbase中。
例子
hbase> hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=, -Dimporttsv.columns="c1,c2,c3...." hdfs://servername:/tmp/yourcsv.csv
####选项2:自定义Map缩小方式编写mapreduce程序和csv解析器,以防需要解析复杂的csv
请看这里的示例