Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure 将DataFrame从DataRicks写入Data Lake_Azure_Azure Data Lake_Databricks - Fatal编程技术网

Azure 将DataFrame从DataRicks写入Data Lake

Azure 将DataFrame从DataRicks写入Data Lake,azure,azure-data-lake,databricks,Azure,Azure Data Lake,Databricks,碰巧我正在使用Azure Databricks处理一些数据。此类数据位于Azure data Lake存储Gen1中。我将数据装载到DBFS中,但现在,在转换数据之后,我希望将其写回我的数据湖 为了装载数据,我使用了以下方法: configs = {"dfs.adls.oauth2.access.token.provider.type": "ClientCredential", "dfs.adls.oauth2.client.id": "<your-service-clien

碰巧我正在使用Azure Databricks处理一些数据。此类数据位于Azure data Lake存储Gen1中。我将数据装载到DBFS中,但现在,在转换数据之后,我希望将其写回我的数据湖

为了装载数据,我使用了以下方法:

configs = {"dfs.adls.oauth2.access.token.provider.type": "ClientCredential",
       "dfs.adls.oauth2.client.id": "<your-service-client-id>",
       "dfs.adls.oauth2.credential": "<your-service-credentials>",
       "dfs.adls.oauth2.refresh.url": "https://login.microsoftonline.com/<your-directory-id>/oauth2/token"}

dbutils.fs.mount(source = "adl://<your-data-lake-store-account-name>.azuredatalakestore.net/<your-directory-name>", mount_point = "/mnt/<mount-name>",extra_configs = configs)
有什么代码可以帮我吗?或是引导我通过的链接


谢谢。

如果您装载Azure Data Lake Store,您应该使用装载点来存储数据,而不是“adl://...". 有关如何装载Azure Data Lake存储的详细信息 (ADLS)第1代请参阅。您可以验证装入点是否与以下各项一起工作:

dbutils.fs.ls("/mnt/<newmountpoint>")
dbutils.fs.ls(“/mnt/”)
因此,请在安装ADLS Gen 1后尝试:

dfGPS.write.mode("overwrite").format("com.databricks.spark.csv").option("header", "true").csv("mnt/<mount-name>/<your-directory-name>")
dfGPS.write.mode(“overwrite”).format(“com.databricks.spark.csv”).option(“header”、“true”).csv(“mnt/”)
如果您正确添加了挂载点,并且您还拥有ADL上服务主体的访问权限,那么这应该是可行的


Spark总是在一个目录中写入多个文件,因为每个分区都是单独保存的。另请参见以下内容。

Mallow先生,您能给我推荐一些链接,让我可以找到与Azure DataRicks和Data Lake Storage Gen1一起使用的良好实践吗?谢谢我更新了我的答案,请检查文档,以及您是否有足够的权限与服务负责人一起访问ADL。谢谢。这对我有用。关于“良好实践”有什么建议吗?我还有另一个问题。当我将文件写回data lake时,会指定一个伪随机名称,如何为此类.csv文件选择所需的名称?这是正常的spark行为,另请参见。
dbutils.fs.ls("/mnt/<newmountpoint>")
dfGPS.write.mode("overwrite").format("com.databricks.spark.csv").option("header", "true").csv("mnt/<mount-name>/<your-directory-name>")