在Python中使用HDFS API來讀取文件

學習如何在Python中使用HDFS API直接讀取文件。

寫的arjun.kaimaparambilrajan

去年發表在:2022年5月19日

有些時候你想直接讀文件不使用第三方庫。這可以用於閱讀小文件當你定期存儲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 >賬戶訪問密鑰。
刪除