2017-03-07 21 views
1

私はbeelineから引用されたcsv出力を取得しようとしています。ビーラインでcsv出力を引用する

beeline -u 'jdbc:hive2://localhost:10000/' --outputformat=csv2 -e 'set system:disable.quoting.for.sv=false; select 1 as a, 2 as b'

私は出力

"a","b" 
"1","2" 

として期待しかし、唯一の非引用されたバージョンを取得:私のクエリは次のようになります。 documentationによると

引用はtrueにdisable.quoting.for.svシステム変数を設定することで無効にすることができます。

私はここで何か間違っていると思います。この変数をfalseに設定するにはどうすればよいですか?それを私の質問に載せても、hive-site.xmlに載せるのはやりにくいようです。

注:hdp 2.5のハイブ1.2.1。

答えて

1

に便利/のみ必要です。

したがって、1 2,3を書き込むと、最後の値は1,"2,3"となります。

フィールドの引用は、文字列として扱う必要があるわけではありません。 "2,3"はまだ数値です(,が小数点の場合)。

一部のcsv作成者は、すべてのフィールドの周りに引用符を追加しますが、これは完全に不要であり、ファイルを大きなメリットなく大きくします。

ドキュメントには、あまりにもこのことについては明らかであるように思わ:

引用が無効になっていない場合は、二重引用符は、それが(例えば、区切り文字または二重引用符 文字など)の特殊文字が含まれている 場合は、値の周りに追加されますまたは複数の行にまたがっています。

埋め込まれた二重引用符は、前の二重引用符でエスケープされます。

+0

文書は確かに明確でなければなりません...ありがとうございます! – Guillaume

0

あなたは試すことができます:フィールドが区切りまたは改行が含まれている場合、CSVのフィールドを引用

beeline --disableQuotingForSV=true --verbose=true -u 'jdbc:hive2://localhost:10000/' --outputformat=csv2 -e 'select 1 as a, 2 as b' 
+0

変更なし。私はあなたがこれを見つけた場所を知りたいと思っています。 – Guillaume

+3

ここにhttps://issues.apache.org/jira/browse/HIVE-14679 – jedijs

+1

実際には私のために働くようには思われません。他のオプション(HADOOP_CLIENT_OPTS = " - Ddisable.foroting.for.sv = false")は、受け入れられた解答の説明が理解されたときにトリックを行います。 – Guillaume

関連する問題