URL 未知编码:Azure Databricks 中的 mbcs

URL unknown encoding: mbcs in Azure Databricks

我下载https://www.philadelphiafed.org/-/media/frbp/assets/surveys-and-data/ads/ads_index_most_current_vintage.xlsx?la=en&hash=6DF4E54DFAE3EDC347F80A80142338E7.

下载来源:https://www.philadelphiafed.org/surveys-and-data/real-time-data-research/ads - 点击"Most Current ADS Index Vintage"下载文件。

Notepad++显示下载文件为ANSI类型。

因此,我用encoding = 'mbcs'来解码。但是,出现错误unknown encoding: mbcs

原码:

ads_url ="https://www.philadelphiafed.org/-/media/frbp/assets/surveys-and-data/ads/ads_index_most_current_vintage.xlsx?la=en&hash=6DF4E54DFAE3EDC347F80A80142338E7"
df_ads = pd.read_csv(ads_url, encoding = 'mbcs')
df_ads_spark = spark.createDataFrame(df_ads)

我不确定您是如何得出结论需要 MBCS 编码来理解该文件的,但我相信该文件是 Excel 文件。 .xlsx 扩展名表示它是一个 zip 文件(这解释了为什么它在 Notepad++ 中不可读),其中部分代表电子表格。你可以read an .xlsx file in Databricks。无需提取 zip 文件部分。

google 搜索后,我发现这个有效。如果需要安装包,请安装。

import urllib.request
import chardet
from urllib.parse import unquote
import requests

ads_url = "https://www.philadelphiafed.org/-/media/frbp/assets/surveys-and-data/ads/ads_index_most_current_vintage.xlsx?la=en&hash=6DF4E54DFAE3EDC347F80A80142338E7"

r = requests.get(ads_url)

open('ads_index_most_current_vintage.xlsx?la=en&hash=6DF4E54DFAE3EDC347F80A80142338E7', 'wb').write(r.content)

df_ads = pd.read_excel('ads_index_most_current_vintage.xlsx?la=en&hash=6DF4E54DFAE3EDC347F80A80142338E7')

df_ads_spark = spark.createDataFrame(df_ads)

display(df_ads_spark)