2017-10-16 84 views
0

在配置單元中有一個外部表,指向未分區的s3位置。該表指向s3中的文件夾,但數據位於該文件夾內的多個子文件夾中。從未分區的配置單元表的子文件夾中獲取數據到spark中的數據框中

這個表可以即使該表不是由象下面蜂房設置幾個屬性分配進行查詢, set hive.input.dir.recursive=true; set hive.mapred.supports.subdirectories=true; set hive.supports.subdirectories=true; set mapred.input.dir.recursive=true;

然而,當相同的表在火花用於加載數據使用sql語句(如df = sqlContext.sql("select * from table_name"))轉換爲數據幀,但操作失敗,說'The subfolders in the external s3 location is not a file'

我嘗試使用sc.hadoopConfiguration.set("mapred.input.dir.recursive","true")方法設置火花以上配置單元屬性,但它沒有幫助。看起來像這隻會幫助sc.textFile種加載。

回答

0

這可以通過在這裏設置火花下列財產, sqlContext.setConf("mapreduce.input.fileinputformat.input.dir.recursive","true")

注意,該屬性設置usign sqlContext代替sparkContext來實現。 而我在火花1.6.2中測試了這個

相關問題