spark rdd讀取檔案
rdd讀取一個檔案
val rdd = sc.textFile("hdfs://172.20.20.17:9000/tmp/wht/account/accounts.txt").map(_.split(","))
rdd讀取多個文字檔案
val rdd = sc.textFile("hdfs://172.20.20.17/tmp/wht/account/accounts.txt,hdfs://172.20.20.17/tmp/wht/account/account02.txt").map(_.split(","))
rdd讀取一個資料夾
val rdd1 = sc.textFile("hdfs://172.20.20.17/tmp/wht/account/").map(_.split(","))
val rdd2 = sc.textFile("hdfs://172.20.20.17/tmp/wht/mix/").map(_.split(","))
rdd讀取巢狀的資料夾下的檔案
val rdd3 = sc.textFile("hdfs://172.20.20.17/tmp/wht/*/*").map(_.split(","))
rdd讀取本地檔案
val rdd4 = sc.textFile("file:///root/Downloads/data/").map(_.split(","))
rdd使用萬用字元讀取檔案
val rdd5 = sc.textFile("hdfs://172.20.20.17/tmp/wht/*.txt").map(_.split(","))
上述示例都是以文字方式讀取檔案,該方式下rdd中的資料是按行來組織的,即讀取了多個檔案時,rdd.count()的值即為多個文字檔案中的行數之和。
當目錄下存在非文字檔案如orc檔案時,會在使用rdd時報錯,如下所示:
scala> rdd4.count()
java.io.IOException: Not a file: file:/root/Downloads/data/nameAndBanlance.orc
參考:https://blog.csdn.net/HeatDeath/article/details/81871651