当前位置: 首页 > 知识库问答 >
问题:

将CSV从Azure Data Lake Storage Gen 2读取到Pandas Dataframe |无数据块

益源
2023-03-14

在过去的3个小时里,我试图将Azure Data Lake Storage Gen2(ADLS Gen2)中的CSV读入熊猫数据帧。这在Azure Blob Storage(ABS)中非常容易,但我不知道如何在ADLS Gen2中做到这一点。

到目前为止,我已经开发了以下功能:

def read_csv_from_adls_to_df(storage_account_name, storage_account_key, container_name, directory_name, file_name):
    service_client = DataLakeServiceClient(account_url=f"https://{storage_account_name}.dfs.core.windows.net", credential=storage_account_key)
    file_system_client = service_client.get_file_system_client(file_system = container_name)
    directory_client = file_system_client.get_directory_client(directory_name)
    file_client = directory_client.create_file(file_name)
    file_download = file_client.download_file()

    return None

我不知道在file_download步骤之后我应该做什么。我已经尝试了readall()和readinto()等方法,但似乎都没有用。

以下是我经常使用的将CSV从ABS读入数据帧的函数:

def read_csv_from_blob(blob_service_client, container_name, blob_name):
    blob_client = blob_service_client.get_blob_client(container=container_name, blob=blob_name)

    # Retrieve extract blob file
    blob_download = blob_client.download_blob()

    # Read blob file into DataFrame
    blob_data = io.StringIO(blob_download.content_as_text())
    df = pd.read_csv(blob_data)
    return df

PS:我不是在数据砖上这样做。我正在蟒蛇身上做这件事。

共有1个答案

嵇星海
2023-03-14

希望这个留档能帮到https://learn.microsoft.com/en-us/azure/architecture/data-science-process/explore-data-blob

使用lambda从s3读取文件很简单,但Azure使这项简单的任务变得复杂。此外,您可以使用Azure数据工厂。

 类似资料:
  • 我有以下格式的文件

  • 问题内容: 我正在从包含以下数据的CSV文件(xyz.CSV)中读取数据: 当我使用循环对其进行迭代时,我可以按以下代码逐行打印数据,并且仅打印column1数据。 通过上面的代码,我只能得到第一列。 如果我尝试打印line [1]或line [2],则会出现以下错误。 请建议打印列2或列3的数据。 问题答案: 这是我获得第二列和第三列的方法: 结果如下:

  • 我正在尝试读取Mac上pig shell上的csv文件。我所做的只是文件到变量中,然后变量。我是这样做的: 我使用的数据是从这里提供的github下载的 此文件在我的Mac上的本地安装的hdfs中可用。当我执行时,我得到一个错误: org.apache.pig.impl.logicallayer.FrontendException:错误1066:无法打开别名影片的迭代器 在org.apache.p

  • 本文向大家介绍python 从csv读数据到mysql的实例,包括了python 从csv读数据到mysql的实例的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇python 从csv读数据到mysql的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 我试图读取一个csv文件目前在谷歌云存储桶到熊猫数据帧。 它显示以下错误消息: 我做错了什么,我无法找到任何不涉及谷歌数据实验室的解决方案?

  • 我一直在试图找到一个连接器,将数据从Redis读取到Flink。Flink的文档中包含了要写入Redis的连接器的描述。在我的Flink工作中,我需要从Redis读取数据。在使用ApacheFlink进行数据流传输时,Fabian提到可以从Redis读取数据。可用于此目的的接头是什么?