2016-07-19 9 views
2

ファイルからハイブテーブルにデータをロードする際に、NULL値が挿入されています。sparkSQLでデータをロードする際にHiveテーブルのNull値を取得する

sqlCon.sql("create table hive_6(id Int,name String) partitioned by (date String) row format delimited fields terminated by ','"); 

sqlCon.sql("load data local inpath '/home/cloudera/file.txt' into table hive_6 partition(date='19July')"); 

sqlCon.sql("select * from hive_6").show() 

+----+----+------+ 
| id|name| date| 
+----+----+------+ 
|null|null|19July| 
|null|null|19July| 
|null|null|19July| 
|null|null|19July| 
|null|null|19July| 
|null|null|19July| 
|null|null|19July| 
+----+----+------+ 

答えて

1

私は、寄木細工のファイルからデータを読み取っているときに同じ問題に直面していました。

spark-sqlにはNULL値が表示されますが、ハイブクエリによって正しいデータが得られます。 理由はスキーマです。

最初に読んでいるファイル(txt/parquet)の列名はすべて小文字にする必要があります。

2番目 - 作成したハイブテーブルの列名は、読んでいるファイルの列名とまったく同じにする必要があります。

第3の理由 - txt/parquetファイルとハイブテーブルの両方のデータ型が同じである必要があります。

関連する問題