有些時候你想直接讀文件不使用第三方庫。這可以用於閱讀小文件當你定期存儲blob和桶不能作為當地DBFS坐騎。
AWS
使用S3 bucket存儲下麵的示例代碼。
% = sc._gateway.jvm.java.net.URI python URI路徑配置= = sc._gateway.jvm.org.apache.hadoop.fs.Path文件係統= sc._gateway.jvm.org.apache.hadoop.fs.FileSystem sc._jsc.hadoopConfiguration () fs =路徑(“s3a: / / < bucket名> / <文件路徑>”).getFileSystem (sc._jsc.hadoopConfiguration ()) istream = fs.open(路徑(“s3a: / / < bucket名> / <文件路徑> '))讀者= sc._gateway.jvm.java.io.BufferedReader (sc._jvm.java.io.InputStreamReader (istream))而真實:thisLine = reader.readLine()如果thisLine不是沒有:打印(thisLine)其他:打破istream.close ()
在哪裏
- < bucket名>S3 bucket的名稱。
- <文件路徑>是該文件的完整路徑。
Azure
使用下麵的示例代碼Azure Blob存儲。
% = sc._gateway.jvm.java.net.URI python URI路徑配置= = sc._gateway.jvm.org.apache.hadoop.fs.Path文件係統= sc._gateway.jvm.org.apache.hadoop.fs.FileSystem sc._jsc.hadoopConfiguration () conf.set (“fs.azure.account.key。<帳戶名稱> .blob.core.windows.net,”< account-access-key >”) fs =路徑(“wasbs: / / <容器名稱> @ <帳戶名稱>.blob.core.windows.net/ <文件路徑> / ').getFileSystem (sc._jsc.hadoopConfiguration ()) (“istream = fs.open(路徑wasbs: / / <容器名稱> @ <帳戶名稱>.blob.core.windows.net/ <文件路徑> / '))讀者= sc._gateway.jvm.java.io.BufferedReader (sc._jvm.java.io.InputStreamReader (istream))而真實:thisLine = reader.readLine()如果thisLine不是沒有:打印(thisLine)其他:打破istream.close ()
在哪裏
- <帳戶名稱>是你的Azure帳戶名稱。
- <容器名稱>是容器的名字。
- <文件路徑>是該文件的完整路徑。
- < account-access-key >賬戶訪問密鑰。