列が ^A で区切られ、行が '\n' 改行文字で区切られているファイルがあります。
最初に HDFS にアップロードしてから、次のようなコマンドを使用して Hive にテーブルを作成します。
CREATE EXTERNAL TABLE
IF NOT EXISTS
html_sample
( ts string,
url string,
html string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\001'
LINES TERMINATED BY '\n'
LOCATION '/tmp/directoryname/';
ただし、そのテーブルに対してselectステートメントを実行すると。それは混乱であることが判明しました。
テーブルは次のようになります。
ts url html
10082013 http://url.com/01 <doctype>.....style="padding-top: 10px;
text-align... NULL NULL
text-align... NULL NULL
text-align... NULL NULL
10092013 http://url.com/02 <doctype>.....style="padding-top: 10px;
text-align... NULL NULL
text-align... NULL NULL
text-align... NULL NULL
次に、テキスト ファイルに戻り、ファイル内にいくつかの ^M 文字が存在することを発見しました。これにより、HIVE はその ^M を改行文字として扱います。
最初にファイルを作成したとき、各レコードが 1 行になるように、意図的にすべての改行文字を html から削除しました。ただし、HIVE が ^M を改行文字として扱うことができる方法を理解できません。ファイルを変更せずにそれを回避するにはどうすればよいですか。
(VI または sed でグローバル置換を実行できる可能性があることは知っていますが、HIVE が ^M を \n として扱う方法はあまり意味がありません)