原文:
www.kdnuggets.com/2020/08/spark-python-sql-azure-databricks.html
评论
作者 Ajay Ohri,数据科学经理
Azure Databricks 是一个基于 Apache Spark 的大数据分析服务,旨在支持数据科学和数据工程,由微软提供。它支持协作工作以及 Python、Spark、R 和 SQL 等多种语言的使用。在 Databricks 上工作具有云计算的优势——可扩展、低成本、按需的数据处理和存储。
1. Google 网络安全证书 - 快速进入网络安全职业生涯。
2. Google 数据分析专业证书 - 提升您的数据分析技能
3. Google IT 支持专业证书 - 支持您的组织在 IT 领域
在这里,我们探讨了一些在 Python、PySpark 和 SQL 之间互换工作的方式。我们学习如何通过先上传 CSV 文件然后在笔记本中创建来导入数据。我们学习如何将 SQL 表转换为 Spark 数据框,并将 Spark 数据框转换为 Python Pandas 数据框。我们还学习如何将 Spark 数据框转换为永久或临时 SQL 表。
为什么我们需要学习如何在 SQL、Spark 和 Python Pandas 数据框之间互换代码?SQL 适合编写简洁易读的数据处理代码,Spark 适合处理大数据和机器学习,而 Python Pandas 可用于从数据处理、机器学习到 seaborn 或 matplotlib 库中的绘图等各种任务。
我们选择 SQL 笔记本以便于操作,然后选择适当的集群及其内存、核心、Spark 版本等。即使是 SQL 笔记本,我们也可以通过在单元格中的代码前面输入 %python 来编写 Python 代码。
现在让我们开始数据输入、数据检查和数据互换的基础知识。
步骤 1 读取上传的数据
%python
# Reading in Uploaded Data
# File location and type
file_location = "/FileStore/tables/inputdata.csv"
file_type = "csv"
# CSV options
infer_schema = "false"
first_row_is_header = "true"
delimiter = ","
# The applied options are for CSV files. For other file types, these will be ignored.
df = spark.read.format(file_type) \
.option("inferSchema", infer_schema) \
.option("header", first_row_is_header) \
.option("sep", delimiter) \
.load(file_location)
display(df)
步骤 2 从 SPARK 数据框创建一个临时视图或表
%python
#Create a temporary view or table from SPARK Dataframe
temp_table_name = "temp_table"
df.createOrReplaceTempView(temp_table_name)
步骤 3 从 SPARK 数据框创建永久 SQL 表
--Creating Permanent SQL Table from SPARK Dataframe
permanent_table_name = "cdp.perm_table"
df.write.format("parquet").saveAsTable(permanent_table_name)
步骤 4 检查 SQL 表
--Inspecting SQL Table
select * from cdp.perm_table
步骤 5 将 SQL 表转换为 SPARK 数据框
%python
#Converting SQL Table to SPARK Dataframe
sparkdf = spark.sql("select * from cdp.perm_table")
步骤 6 检查 SPARK 数据框
%python
#Inspecting Spark Dataframe
sparkdf.take(10)
步骤 7 将 Spark 数据框转换为 Python Pandas 数据框
%python
#Converting Spark Dataframe to Python Pandas Dataframe
%python
pandasdf=sparkdf.toPandas()
步骤 8 检查 Python 数据框
%python
#Inspecting Python Dataframe
pandasdf.head()
参考文献
-
Azure Databricks 简介 -
www.slideshare.net/jamserra/introduction-to-azure-databricks-83448539
-
Dataframes 和 Datasets -
docs.databricks.com/spark/latest/dataframes-datasets/index.html
-
优化 PySpark 与 pandas DataFrames 之间的转换 -
docs.databricks.com/spark/latest/spark-sql/spark-pandas.html
-
pyspark 包 -
spark.apache.org/docs/latest/api/python/pyspark.html
个人简介: Ajay Ohri 是数据科学经理(Publicis Sapient),并且是《R for Cloud Computing》和《Python for R Users》以及其他 4 本数据科学书籍的作者。
相关:
-
Dataproc 上的 Apache Spark 与 Google BigQuery 比较
-
使用 Kubernetes 对 PySpark 进行容器化
-
数据科学的 5 个 Apache Spark 最佳实践