Hbase import ^A (CTRL A) файл с разделителями, используя importTsv
У меня есть простой текстовый файл, строки разделены символом "\n", а столбцы разделены символом "^A", который является непечатаемым символом. Мне нужно загрузить этот файл в HBase, и я наткнулся на инструмент importtsv, который, кажется, может делать то, что мне нужно.
Я провел небольшое исследование и выяснил, что:
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv \
-Dimporttsv.columns=col1,col2,col3 \
-Dimporttsv.skip.bad.lines=true \
'-Dimporttsv.separator=|' \
-Dmapred.job.name=job_name \
user_action_log \
/data2/result
Тем не менее, я не знаю, как я могу передать контроль А в '-Dimporttsv.separator=|'
Я взглянул на исходный код этого ImportTsv здесь.
Я ни в коем случае не разбираюсь в Java, чтобы понять это, и мне интересно, может ли кто-нибудь из вас, кто знает Java, помочь мне передать элемент управления A из командной строки в класс Java?
Спасибо,
1 ответ
С bash
, ksh
а также zsh
, вы можете передать символ Ctrl-A, используя $'\x01'
:
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv \
-Dimporttsv.columns=col1,col2,col3 \
-Dimporttsv.skip.bad.lines=true \
-Dimporttsv.separator=$'\x01' \
-Dmapred.job.name=job_name \
user_action_log \
/data2/result
Для posix sh
вместо этого вы можете использовать $(printf "\x01")
,