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"),

Другие вопросы по тегам