首页 > 解决方案 > 如何在databricks中读取由.gz压缩的镶木地板文件?

问题描述

我的文件存储在 Azure 的 blob 存储中,看起来像1627937153-1627937153-ab_test-20210604-0-0.parquet.gz. 如何在不将此文件下载到 databricks 环境中的情况下使用 Python 从 databricks 中的该文件中读取数据?我在同一个文件夹中有多个相同格式的文件。谁能帮我这个?

标签: pythondatabricksparquetazure-blob-storagegunzip

解决方案


你可以试试

import pandas as pd
df = read_parquet("myFile.parquet.gzip")
display(df)

正如@bala(或)在此处提到的

2.来自SO参考

 import io
df = pd.read_parquet(blob_to_read, engine='pyarrow')
display(df)

(或) 3。

尝试使用 gzip 文件从 zip 文件中读取

import gzip
file = gzip.open("filename.parquet.gz", "rb")
df = file.read()
display(df)

您也可以从zip-files-python-notebook中获取有关zip-files-python 的这篇文章,该文章 展示了如何解压缩文件,其中包含以下步骤:

1.检索文件

2.解压文件

3.将文件移动到DBFS

最后使用将文件加载到数据框中

df = spark.read.format("parquet").option("inferSchema", "true").option("header","true").load("dbfs:/tmp/LoanStats3a. parquet ")
display(df)

如果您使用 azure data Lake gen2,请检查此 pyarrowfs-adlgen2 是 Azure Data Lake Gen2 的 pyarrow 文件系统的实现。请参阅 > 将 pyarrow 与 Azure Data Lake gen2一起使用。 它允许您使用 pyarrow 和 pandas 直接从 Azure 读取 parquet 数据集,而无需先将文件复制到本地存储。


推荐阅读