2017-10-16 4 views
0

分割されていないs3の場所を示す外部テーブルがハイブにあります。テーブルはs3のフォルダを指していますが、データはそのフォルダ内の複数のサブフォルダにあります。パーティション化されていないハイブテーブルのサブフォルダから、データフレームにデータを取得する

同じテーブルをロードするためにスパークで使用される場合、この表は、しかしながら set hive.input.dir.recursive=true; set hive.mapred.supports.subdirectories=true; set hive.supports.subdirectories=true; set mapred.input.dir.recursive=true;

、テーブルは以下のようにハイブにいくつかのプロパティを設定することによって仕切られていなくても照会することができますdf = sqlContext.sql("select * from table_name")のようなSQL文を使用してデータをデータフレームに挿入すると、アクションは'The subfolders in the external s3 location is not a file'と表示されません。

sc.hadoopConfiguration.set("mapred.input.dir.recursive","true")メソッドを使用してスパークのハイブプロパティを設定しようとしましたが、役に立たなかった。このように見えるのは、sc.textFileの種類の読み込みにのみ役立ちます。

答えて

0

これは、プロパティではなくsparkContextのusign sqlContextに設定されていることをここで、スパークにおける次のプロパティを設定することによって sqlContext.setConf("mapreduce.input.fileinputformat.input.dir.recursive","true")

注意を達成することができます。 これをスパーク1.6.2でテストしました

関連する問題