我正在尝试使用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
答案 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