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;
相关推荐
GIR12312 分钟前
垫装式固态绝缘开关设备 行业地位与成长性研究报告:占有率跃升路径、收入增速与销量趋势
大数据
huashengzsj24 分钟前
渠道数据管理用什么工具 新零售渠道数据管理系统推荐
大数据·人工智能·零售
TMT星球33 分钟前
松延动力推出具身智能子品牌Scalabot:让智能,在真实世界生长
大数据·人工智能
buligbulig34 分钟前
数据石油 vs. 情绪基因:小数据时代正在反攻
大数据
金融Tech趋势派37 分钟前
2026企业微信SCRM服务商选型指南:官方认证、安全合规、产品能力全维度核验
大数据·安全·企业微信
m0_547486661 小时前
《大数据导论》全套PPT课件2026
大数据
猴子15516811 小时前
360度评估怎么让打分更客观一些?2026各项权重怎么设才合理
大数据·经验分享
CHANCE V1 小时前
Elasticsearch 进阶
大数据·elasticsearch·搜索引擎
xqqxqxxq2 小时前
AI Agent学习:第四章小结及八道思考题(李博杰《深入理解 AI Agent》第四章观后总结)
大数据·人工智能·学习
汇海老周2 小时前
《金融炼金术》第三课:从反身性到繁荣—萧条——理解正反馈机制
大数据·金融