2016-10-21 6 views
0

以下のクエリを使用してspark sqlを使用してhdfsからハイブにファイルをロードしようとしています。spark sqlを使用してハイブにロードした後にhdfsファイルが表示されない

hiveContext.sql("CREATE EXTERNAL TABLE IF NOT EXISTS src (value STRING)") 
hiveContext.sql("LOAD DATA INPATH '/data/spark_test/kv1.txt' INTO TABLE src") 
hiveContext.sql("FROM src SELECT *").collect().foreach(println) 

私は何を見つけることは、第二文はつまり、ファイルをロードした後、私は/apps/hive/warehouse/src/内のファイルを参照してくださいされていますが、もう/data/spark_test/kv1.txtで発見されていません。なぜそうなの?)Sparkバージョン1.6.1はここで使用されています。

答えて

1

これはハイブのデフォルトの動作です。load dataコマンドハイブを使用してテーブルにデータをロードすると、元のソースデータがテーブルの場所に移動されます。
テーブルの場所の中に同じファイルがあり、以下のコマンドを実行してソースファイルを見つけることができます。 srcとして

describe extended src; --copy location 
hadoop fs -ls <location> 

あなたは、次の工程で直接代わりにロードのデータの上に外部表を作成することができように、外部表です。

hiveContext.sql("CREATE EXTERNAL TABLE IF NOT EXISTS src (value STRING) location '/data/spark_test'") 
関連する問題