将数据从Azure data Lake加载到DSVM上的Jupyter笔记本

2024-05-20 01:32:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将数据从azuredatalake加载到我的datasciencevm中的Jupyter笔记本。请注意,我是datalake存储的所有者,拥有读、写和执行权限。带有Jupyter的datascience虚拟机在相同的订阅下运行,并且位于同一资源组下。我正在尝试以下两种方法,但都面临一个问题。它们基于this博客文章。在


  • 火花塞

以下是我使用PySpark加载数据时使用的代码:

hvacText = sc.textFile("adl://name.azuredatalakestore.net/file_to_read.csv")
hvacText.count()

引发以下异常:

^{pr2}$
  • Python SDK:

以下是我使用SDK访问数据时使用的代码:

from azure.datalake.store import core, lib, multithread    
token = lib.auth()
# output: To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code XXXX to authenticate.
# here I open the link and enter the code successfully
adl = core.AzureDLFileSystem(token, store_name='store_name')
adl.ls('/')

发生以下异常:

DatalakeRESTException: Data-lake REST exception: LISTSTATUS, .

我更感兴趣的是解决火花解决方案,但任何帮助将不胜感激。在


Tags: theto数据store代码namecoretoken
2条回答

要使用DSVM上的ADLS连接器,需要执行以下两项操作:

  1. 添加两个jar,hadoop-azure-datalake-3.0.0-alpha3.jar和azure-data-lake-store-sdk-2.1.5.jar-默认值.conf,通过编辑/dsvm/tools/spark/current/conf/spark-默认值.conf把两个罐子都加到火花罐. 默认情况下我们不加载它们,这样用户就可以获得更快的启动时间。
  2. 创建核心-站点.xml:同样在conf目录中,复制core-site.xml.template核心-站点.xml. 只保留ADLS部分并输入值。

您还需要修复当前映像中断开的符号链接:在/dsvm/tools/spark/current/jars中,有azure-data-lake-store-sdk-2.0.11.jar和hadoop-azure-datalake-3.0.0-alpha2.jar的符号链接。您应该删除这些并将符号链接添加到/opt/adls jars/hadoop-azure-datalake-3.0.0-alpha3.jar和/opt/adls-jars/azure-data-lake-store-sdk-2.1.5.jar。这是我们的问题。在

你是编辑还是创建核心-站点.xml在$SPARK_HOME/conf(必须是/dsvm/tools/SPARK/current/conf)中添加与ADLS访问令牌和adl架构详细信息链接的参考文章中指定的config属性?(为了方便贴在这里)。在

<configuration>
  <property>
        <name>dfs.adls.oauth2.access.token.provider.type</name>
        <value>ClientCredential</value>
  </property>

  <property>
      <name>dfs.adls.oauth2.refresh.url</name>
      <value>YOUR TOKEN ENDPOINT</value>
  </property>
  <property>
      <name>dfs.adls.oauth2.client.id</name>
      <value>YOUR CLIENT ID</value>
  </property>
  <property>
      <name>dfs.adls.oauth2.credential</name>
      <value>YOUR CLIENT SECRET</value>
  </property>
  <property>
      <name>fs.adl.impl</name>
      <value>org.apache.hadoop.fs.adl.AdlFileSystem</value>
  </property>
  <property>
      <name>fs.AbstractFileSystem.adl.impl</name>
      <value>org.apache.hadoop.fs.adl.Adl</value>
  </property>  
</configuration>

ADLS连接JAR文件已经预构建到DSVM中。在

相关问题 更多 >