使用 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的主要内容,如果未能解决你的问题,请参考以下文章

importTSV工具导入数据到hbase

我必须实现hadoop,所以它可以处理呼叫详细记录的数据?

使用 python 将 csv 文件加载到 SnowFlake 表中

使用 sqlalchemy 将 csv 文件加载到数据库中

如何使用 Python 从 OS Windows 将 CSV 文件加载到 Amazon Redshift? [关闭]

pyspark 使用模式将 csv 文件加载到数据框中