Skip to content

Latest commit

 

History

History
150 lines (96 loc) · 5.74 KB

spark-python-sql-azure-databricks.md

File metadata and controls

150 lines (96 loc) · 5.74 KB

在 Azure Databricks 上使用 Spark、Python 或 SQL

原文:www.kdnuggets.com/2020/08/spark-python-sql-azure-databricks.html

评论

作者 Ajay Ohri,数据科学经理

Azure Databricks 是一个基于 Apache Spark 的大数据分析服务,旨在支持数据科学和数据工程,由微软提供。它支持协作工作以及 Python、Spark、R 和 SQL 等多种语言的使用。在 Databricks 上工作具有云计算的优势——可扩展、低成本、按需的数据处理和存储。


我们的前 3 个课程推荐

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()

参考文献

  1. Azure Databricks 简介 - www.slideshare.net/jamserra/introduction-to-azure-databricks-83448539

  2. Dataframes 和 Datasets - docs.databricks.com/spark/latest/dataframes-datasets/index.html

  3. 优化 PySpark 与 pandas DataFrames 之间的转换 - docs.databricks.com/spark/latest/spark-sql/spark-pandas.html

  4. 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 最佳实践

更多相关主题