【问题标题】:How to read parquet file compressed by .gz in databricks?如何在databricks中读取由.gz压缩的镶木地板文件?
【发布时间】:2021-10-24 09:39:32
【问题描述】:
我的文件存储在 Azure 的 blob 存储中,看起来像 1627937153-1627937153-ab_test-20210604-0-0.parquet.gz。如何使用 Python 从 databricks 中的该文件中读取数据,而无需将该文件下载到 databricks 环境中?我在同一个文件夹中有多个相同格式的文件。谁能帮我解决这个问题?
【问题讨论】:
标签:
python
databricks
parquet
azure-blob-storage
gunzip
【解决方案1】:
-
你可以试试
import pandas as pd
df = read_parquet("myFile.parquet.gzip")
display(df)
正如@bala 在here 中提到的那样
(或)
2。
来自SO reference
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 文件系统的实现。请参阅 > Use pyarrow with Azure Data Lake gen2 。它允许您使用 pyarrow 和 pandas 直接从 Azure 读取 parquet 数据集,而无需先将文件复制到本地存储。