我正在使用 HBase 0.98.1-cdh5.1.3
. 我正在尝试接收一个csv文件,该文件存在于我的hdfs中的位置 /user/hdfs/exp
到hbase。我的文件包含以下格式的数据:
1,abc,xyz
2,def,uvw
3,ghi,rst
我正在使用下面的命令:
bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv '-Dimporttsv.separator=,' -Dimporttsv.columns=HBASE_ROW_KEY,CF:firstname,CF:lastname tablename /user/hdfs/exp
我也使用了不同的组合,比如
bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=HBASE_ROW_KEY,CF:firstname,CF:lastname tablename /user/hdfs/exp '-Dimporttsv.separator=,'
和
bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=HBASE_ROW_KEY,CF:firstname,CF:lastname '-Dimporttsv.separator=,' tablename /user/hdfs/exp
但什么都不管用。它无法检测分隔符,也就是说,在我的例子中,它没有被正确地解析。谁能帮我找出哪里出了问题。
这只是一行数据集:
10000064202896309897,1000006420,2896309897,10180,hdfs://btc5x015:8020/user/mr\u test/logsjan/log\u jan20\u 29/10180\u log201501260000.log,3.2.3.1,92015-01-26,15:46:12.12,参考肩部4,n,n,肩部60,17.0,m,487093458,[研究\u 16004\u 16004],检查\u 16004,[患者\u 16004\u 1],schulter std,schultergelenk rechts,8.10,不存在,-8.1,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,y,n,hf,hf,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,y,y,n,hf,hf,y,n,hf,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在时间:12.12,9.5,9.4,1.002,不存在,真,不,不存在,0.0,不存在,不存在,不存在,不存在,不存在,0.0,不存在,不存在,0.0,0.09,0.3,3.3,0,假,假,假,n,n,26.1,lt,0.33,0.03,不存在,null,1,dres.grafkernhausmann,e:\export\datamonitoring\p\u i\u 20150126\u 154530.frame,hdfs://btc5x015.code1.emi.philips.com:8020/user/mr\u test/logsjan/log\u jan20\u 29/10180\u log201501260000.log,317774,883,0,0,0,0,0,1,1,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,00:00:00,00,00,00,00:00,00,00:00,00:00,00:00,00:00,00:00,00:00:00,00:00,00:00:00,00,00:00:00,00:00:00,00:00:00:00,00:00,00:夸德,190190,临床,0,094166709,放射学家gemeinschaftspraxis,医学博士。迈克尔·格拉夫,医学博士。安德烈亚斯·克恩,医学博士。韦茨拉尔豪斯曼,邮编:35578。47,6,不存在,1,不存在,否,不存在,不存在,不存在,1,不存在,不存在,不存在,不存在,不存在,不存在,不存在,最短,不存在,最短,1,不,是,默认,ffe,不存在,不存在,不存在,不存在,不存在,不存在,不存在,3,不存在,笛卡尔,是,否,不存在,不存在,不存在,低,满,不存在,不存在,不存在,不存在,3d,不存在,不存在,不存在,不存在,不存在,不存在,不存在,是,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,用户定义,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,450405,是,仰卧,hf,不存在,不存在,不存在,不存在,不存在,不存在,不存在,默认,不存在,2,sense-shoulder8 body quad,f,400,,,100,5.625,7.23214293,4,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,80,平行,不,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不,不存在,0,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不,不,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,不存在,0,5.625,不存在,不存在,不存在,t30,3.0t,否,f2000,水冷2274-d,主,无,,,0,16,0,1,s26\U 128,无,8,空,cdas,logfolder\U sysfolder\U matched\U release\U not\U checked,false,空,空,空,空,12.15,sense-shoulder8/(19)q-body,0,scan\U parse\U success,shoulder,-4.64757729 5.37445641,
2条答案
按热度按时间xurqigkl1#
在指定分隔符时,单个引号似乎放错了位置。尝试使用以下选项:
-Dimporttsv.separator=','
而不是'-Dimporttsv.separator=,'
如果准备输入文件时,任何列值都由字段分隔符(在本例中为逗号)组成,则输入文件将失败。在准备csv文件时最好保留不同的分隔符(如|)falq053o2#
我刚刚用importtsv命令将一行give加载到hbase表中,它提供了414列,对我来说非常有效。
我已经给了随机列名,你可以根据需要更新。
注意:确保通过命令传递的列数与输入数据源匹配。甚至当我通过412列而不是414列时,我也遇到了糟糕的行问题。
希望这会有帮助。:)