2017-01-30 11 views
0

は、私は、このCSVファイルがあるとします。Apacheドリルはcsvファイルで明示的な `NULL`を理解する方法を教えてください。

a,b 
NULL,1 
1,2 

その後、私はいくつかのクエリを実行してみてください。

> SELECT * FROM dfs.`/path/to/foo.csv`; 
+-------+----+ 
| a | b | 
+-------+----+ 
| NULL | 1 | 
| 1  | 2 | 
+-------+----+ 
2 rows selected 

> SELECT * FROM dfs.`/path/to/foo.csv` WHERE a is NULL; 
+----+----+ 
| a | b | 
+----+----+ 
+----+----+ 
No rows selected 

> SELECT * FROM dfs.`/path/to/foo.csv` WHERE a is NOT NULL; 
+-------+----+ 
| a | b | 
+-------+----+ 
| NULL | 1 | 
| 1  | 2 | 
+-------+----+ 
2 rows selected 

> SELECT * FROM dfs.`/path/to/foo.csv` WHERE a > 0; 
Error: SYSTEM ERROR: NumberFormatException: NULL 

Fragment 0:0 

Apacheのドリルは、文字列としてNULL検討しているようです。

空の文字列(sed -i 's/NULL//g' foo.csv)と置き換えても、Apache Drillはそれらの値がnullではないと考えています。

NULL(または空の値)と考えるようにする方法はありますか...よく... null

最新のリリースバージョン:1.9.0を使用しています。

答えて

1

絶対にできます!

  1. http://[your drillbit IP]でコンソールを開き:8047と右上隅に 「オプション」ボタンをクリックします。
  2. 「drill.exec.functions.cast_empty_string_to_null」を検索し、trueに設定します。
関連する問題