快速入门:在 Azure Synapse Analytics 中将数据从 ADLS Gen2 读取到 Pandas 数据帧
本快速入门介绍如何在 Azure Synapse Analytics 中使用 Python 轻松将数据从 Azure Data Lake Storage (ADLS) Gen2 读入到 Pandas 数据帧。
你将通过 Synapse Studio 笔记本执行以下操作:
- 连接到 Azure Data Lake Storage (ADLS) Gen2 中与 Azure Synapse Analytics 工作区相链接的容器。
- 使用
spark.read.load
从 PySpark 笔记本中读取数据。 - 使用
.toPandas()
将数据转换为 Pandas 数据帧。
先决条件
- 将需要 Azure 订阅。 如果需要,请创建一个 Azure 试用帐户。
- 已将 ADLS Gen2 配置为默认存储的 Synapse Analytics 工作区 - 你需是所用 ADLS Gen2 文件系统的“存储 Blob 数据参与者”。 若要详细了解如何创建工作区,请参阅创建 Synapse 工作区。
- 工作区中的 Apache Spark 池 - 请参阅创建无服务器 Apache Spark 池。
登录到 Azure 门户
登录 Azure 门户。
将示例数据上传到 ADLS Gen2
在 Azure 门户中,在 Synapse Studio 所用的同一 ADLS Gen2 中创建容器。 如果你要在 Azure Synapse Analytics 工作区中使用默认的已链接存储帐户,则可以跳过此步骤。
在 Synapse Studio 中,选择“数据”,选择“已链接”选项卡,然后选择“Azure Data Lake Storage Gen2”下的容器。
下载示例文件 RetailSales.csv 并将其上传到该容器。
选择上传的文件,选择“属性”,然后复制“ABFSS 路径”值。
将数据从 ADLS Gen2 读入到 Pandas 数据帧
在左窗格中,选择“开发”。
选择 +,并选择“笔记本”以创建新的笔记本。
在“附加到”中,选择你的 Apache Spark 池。 如果没有 Apache Spark 池,请选择“创建 Apache Spark 池”。
在笔记本代码单元中粘贴以下 Python 代码,并插入前面复制的 ABFSS 路径:
%%pyspark data_path = spark.read.load('<ABFSS Path to RetailSales.csv>', format='csv', header=True) data_path.show(10) print('Converting to Pandas.') pdf = data_path.toPandas() print(pdf)
运行该单元。
几分钟后,显示的文本应类似于以下内容。
Command executed in 25s 324ms by gary on 03-23-2021 17:40:23.481 -07:00
Job execution Succeeded Spark 2 executors 8 cores
+-------+-----------+--------+-----------+-----------+-----+------------+--------------------+
|storeId|productCode|quantity|logQuantity|advertising|price|weekStarting| id|
+-------+-----------+--------+-----------+-----------+-----+------------+--------------------+
| 2| surface.go| 105|9.264828557| 1| 159| 6/15/2017|d6bd47a7-2ad6-4f0...|
| 2| surface.go| 80|8.987196821| 0| 269| 7/27/2017|64cc74c2-c7da-4e1...|
| 2| surface.go| 68|8.831711918| 1| 209| 8/3/2017|9a2d164b-5e44-44d...|
| 2| surface.go| 28|7.965545573| 0| 209| 8/10/2017|b8cd9987-1d5a-4f4...|
| 2| surface.go| 16|7.377758908| 0| 209| 8/24/2017|ac0ec099-e102-4bf...|
| 2| surface.go| 253| 10.1402973| 1| 189| 8/31/2017|3d22c002-b04c-409...|
| 2| surface.go| 107|9.282847063| 0| 189| 9/7/2017|b6e19699-d684-449...|
| 2| surface.go| 66|8.803273983| 0| 189| 9/14/2017|e89a5838-fb8f-413...|
| 2| surface.go| 65|8.793612072| 0| 179| 9/21/2017|c3278682-16c0-483...|
| 2| surface.go| 17|7.454719949| 0| 269| 10/12/2017|f40190c1-b2ed-46f...|
+-------+-----------+--------+-----------+-----------+-----+------------+--------------------+
only showing top 10 rows
Converting to Pandas.
storeId ... id
0 2 ... d6bd47a7-2ad6-4f0a-b8de-ed1386cae5ea
1 2 ... 64cc74c2-c7da-4e12-af64-c95bdf429934
2 2 ... 9a2d164b-5e44-44d7-9837-cf9ae6566c99
3 2 ... b8cd9987-1d5a-4f4f-9346-719d73b1f7f0
4 2 ... ac0ec099-e102-4bfc-9775-983b151dcd03
... ... ... ...
28942 137 ... 6af00133-7015-415d-831b-ddf05bb5828c
28943 137 ... 1e0d3a21-ab43-49c4-89e2-49d202821807
28944 137 ... 5cc7e50a-6aa4-419b-a933-905a667aa2df
28945 137 ... 650ca506-7a4f-46f8-b2e1-e52ceffadf16
28946 137 ... 9bb216f6-04ec-4b61-9e68-34772b814c44
[28947 rows x 8 columns]