使用 Importtsv 将 csv 文件加载到 Hbase
Posted
技术标签:
【中文标题】使用 Importtsv 将 csv 文件加载到 Hbase【英文标题】:Load csv file to Hbase by using Importtsv 【发布时间】:2017-07-25 04:05:44 【问题描述】:我正在尝试。
我已经将customers1.csv上传到hdfs,使用命令创建了一个名为t1的hbase表
hbase(main):001:0> create 't1','FirstName','LastName'
当我尝试通过运行命令将 csv 数据加载到 hbase 表 t1 时:
hbase(main):010:0> hbase org.apache.hadoop.hbase.mapreduce.ImportTsv-Dimporttsv.separator=',' -Dimporttsv.columns='HBASE_ROW_KEY,FirstName,LastName' t1 hdfs://my.cluster.com/user/maapr/test/customers1.csv
我未能加载数据,原因是:
SyntaxError: (hbase):10: syntax error, unexpected tIDENTIFIER
我遵循了在线研究的语法,但仍然出现此语法错误。知道发生了什么吗?您的解决方案将不胜感激。
还有一个愚蠢的问题。除了 Importtsv 之外,还有其他方法可以将数据从 HDFS 加载到 Hbase 吗?谢谢。
【问题讨论】:
【参考方案1】:您正在从 HBase shell 运行批量加载命令。从 HBase shell 中出来并尝试.. :)
这部分需要空格:ImportTsv -Dimporttsv.separator=','
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=',' -Dimporttsv.columns='HBASE_ROW_KEY,FirstName,LastName' t1 hdfs://my.cluster.comser/maapr/test/customers1.csv
对于批量加载,您还可以编写自定义 MR 作业。 我正在为我的 Phoenix HBase 表使用 Apache Phoenix Bulk Load Tool。
【讨论】:
当我们不知道至少有 150 列时,我们在-Dimporttsv.columns=
中写什么?以上是关于使用 Importtsv 将 csv 文件加载到 Hbase的主要内容,如果未能解决你的问题,请参考以下文章
使用 python 将 csv 文件加载到 SnowFlake 表中