在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 >账户访问密钥。
删除


这篇文章有用吗?