一、sc.textfile介紹
sc.textfile是Spark Core提供的一種文本讀取API,可以輕鬆讀取文本文件,並將文件的每一行作為RDD中的一個元素。
sc(SparkContext)是Spark應用的入口點,是在Spark集群中與集群交互的主要方式。textfile()函數是SparkContext的一個方法,傳入文本文件路徑即可返回RDD。
示例代碼:
from pyspark import SparkContext sc = SparkContext("local", "textfile example") text_file = sc.textFile("hdfs://path/to/file")
二、讀取本地文件
讀取本地文件可以使用相對或絕對路徑,甚至可以使用file://前綴來指定文件的絕對路徑。
其它的文件系統路徑支持將被文件系統模塊解析,例如輸入hdfs://host:port/path。
示例代碼:
from pyspark import SparkContext sc = SparkContext("local", "textfile example") text_file = sc.textFile("file:///path/to/file")
三、讀取HDFS文件
如果你使用了Hadoop集群,那麼HDFS可能是你存儲數據的地方。使用sc.textfile()可以輕鬆地讀取HDFS文件。
可以使用hdfs://前綴指定HDFS文件的路徑,並指定正確的主機和端口。
示例代碼:
from pyspark import SparkContext sc = SparkContext("local", "textfile example") text_file = sc.textFile("hdfs://localhost:9000/path/to/file")
四、讀取目錄下的所有文件
如果要讀取目錄下的所有文件,可以使用通配符指定一個目錄下的所有文件。
使用通配符時,textfile()將讀取目錄下的所有文件並將其組合成一個RDD。
示例代碼:
from pyspark import SparkContext sc = SparkContext("local", "textfile example") text_files = sc.textFile("hdfs://localhost:9000/path/to/folder/*")
五、讀取多個文件
如果要讀取多個文件,可以將每個文件的路徑指定為一個數組,並將它們傳遞給textfile()函數。
示例代碼:
from pyspark import SparkContext sc = SparkContext("local", "textfile example") text_files = sc.textFile(["hdfs://localhost:9000/path/to/file1", "hdfs://localhost:9000/path/to/file2"])
六、指定文件編碼
默認情況下,textfile()將讀取文件的原始字節,如果文件是UTF-8編碼的,可能會得到損壞的字符串結果。
使用textfile()函數的第二個參數可以指定文件的編碼方式。
示例代碼:
from pyspark import SparkContext sc = SparkContext("local", "textfile example") text_file = sc.textFile("hdfs://localhost:9000/path/to/file", "UTF-8")
原創文章,作者:VOGI,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/146403.html