Transform Spark

rm -r dp-203 -f

git clone https://github.com/MicrosoftLearning/dp-203-azure-data-engineer dp-203

cd dp-203/Allfiles/labs/06

./setup.ps1

https://github.com/MicrosoftLearning/dp-203-azure-data-engineer/tree/master/Allfiles/labs/06/notebooks

python 复制代码
order_details = spark.read.csv('/data/*.csv', header=True, inferSchema=True)
display(order_details.limit(5))
python 复制代码
from pyspark.sql.functions import split, col

# Create the new FirstName and LastName fields
transformed_df = order_details.withColumn("FirstName", split(col("CustomerName"), " ").getItem(0)).withColumn("LastName", split(col("CustomerName"), " ").getItem(1))

# Remove the CustomerName field
transformed_df = transformed_df.drop("CustomerName")

display(transformed_df.limit(5))
python 复制代码
transformed_df.write.mode("overwrite").parquet('/transformed_data/orders.parquet')
print ("Transformed data saved!")
python 复制代码
from pyspark.sql.functions import year, month, col

dated_df = transformed_df.withColumn("Year", year(col("OrderDate"))).withColumn("Month", month(col("OrderDate")))
display(dated_df.limit(5))
dated_df.write.partitionBy("Year","Month").mode("overwrite").parquet("/partitioned_data")
print ("Transformed data saved!")
python 复制代码
orders_2020 = spark.read.parquet('/partitioned_data/Year=2020/Month=*')
display(orders_2020.limit(5))
python 复制代码
order_details.write.saveAsTable('sales_orders', format='parquet', mode='overwrite', path='/sales_orders_table')
python 复制代码
sql_transform = spark.sql("SELECT *, YEAR(OrderDate) AS Year, MONTH(OrderDate) AS Month FROM sales_orders")
display(sql_transform.limit(5))
sql_transform.write.partitionBy("Year","Month").saveAsTable('transformed_orders', format='parquet', mode='overwrite', path='/transformed_orders_table')
sql 复制代码
%%sql

SELECT * FROM transformed_orders
WHERE Year = 2021
    AND Month = 1
sql 复制代码
%%sql

DROP TABLE transformed_orders;
DROP TABLE sales_orders;
相关推荐
人工智能培训4 分钟前
人工智能性别与地域偏见的成因及消解路径
大数据·人工智能·算法·生活
段一凡-华北理工大学5 分钟前
高炉炉况智能诊断与预警实战~系列文章24:炉况诊断实战全景复盘:从需求到价值的完整案例
大数据·人工智能·机器学习·模型可解释性·高炉智能化·高炉炉况诊断·高炉炉况预警
Elastic 中国社区官方博客15 分钟前
安装 Elasticsearch
大数据·数据库·elasticsearch·搜索引擎·全文检索
衡石科技15 分钟前
HENGSHI ChatBI|不止智能问数,Agentic Analytics 重构经营分析全流程
大数据·重构·数据分析·产品运营·bi
智讯阁32 分钟前
能直接操作电脑的AI助手有哪些?AiPy、QoderWork、TRAE Work、WorkBuddy深度实测
大数据·人工智能
TDengine (老段)32 分钟前
TDengine 内存管理 — 池化、缓存、回收
大数据·数据库·物联网·缓存·时序数据库·tdengine·涛思数据
东小黑35 分钟前
mac安装RabbitMQ
分布式·rabbitmq
小白说大模型40 分钟前
AI 提示词专栏:Zero-Shot 与 One-Shot Prompt 的差别与适用场景
大数据·数据库·人工智能·sql·深度学习·prompt
MuMuMu12231 小时前
文旅户外场景智能回收终端工程难点解析:越华环保集团碳惠小屋耐候与供电系统实践
java·大数据·算法
hzxpaipai1 小时前
制造业官网产品信息架构怎么设计?从产品分类到后台数据结构
大数据·数据结构