如何使用Dimporttsv

时间:2019-03-28 02:43:40

标签: shell csv hdfs hbase

我正在尝试使用shell命令Dimporttsv.将csv文件加载到hbase表中 csv文件位于我的hdfs(/ csvFiles)的目录中

csv文件是由具有以下功能的mysql表生成的:

+-------------+
Field       
+-------------+
tweet_id
user_id
screen_name
description
created_at
+-------------+

我在hbase中创建了一个带有单个家族名称的表,如下所示:

create 'dummyTable', 'cf1'

我正在使用的命令:

ImportTsv -Dimporttsv.separator=',' -Dimporttsv.columns=HBASE_ROW_KEY,cf1:user_id,cf1:tweet_id,cf1:screen_name,cf1:description,cf1:created_at dummyTable /csvFiles/all_users.csv

但是我遇到此语法错误:

SyntaxError: (hbase):8: syntax error, unexpected tSYMBEG

我查看了以下帖子,并遵循了其中的建议,但无济于事。感谢您的帮助。

Import TSV file into hbase table

https://community.hortonworks.com/articles/4942/import-csv-data-into-hbase-using-importtsv.html

http://hbase.apache.org/book.html#importtsv

1 个答案:

答案 0 :(得分:0)

Hbase shell退出,然后尝试在importtsv.columns上添加单引号

bash$ hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=',' -Dimporttsv.columns='HBASE_ROW_KEY,cf1:user_id,cf1:tweet_id,cf1:screen_name,cf1:description,cf1:created_at' dummyTable hdfs://<your_name_node_addr>/csvFiles/all_users.csv

(或)

From Hbase Shell:

hbase(main):001:0> ImportTsv -Dimporttsv.separator=',' -Dimporttsv.columns='HBASE_ROW_KEY,cf1:user_id,cf1:tweet_id,cf1:screen_name,cf1:description,cf1:created_at' dummyTable hdfs://<your_name_node_addr>/csvFiles/all_users.csv