当前位置: 首页 > article >正文

pyspark==堆叠

安装环境

docker pull jupyter/all-spark-notebook

方式一

from pyspark.sql import SparkSession
from pyspark.sql.functions import expr, col

# 创建SparkSession
spark = SparkSession.builder.appName("StudentScores").getOrCreate()

# 创建示例数据
data = [
    ("Alice", 18, 85, 90, 78, "Street 1"),
    ("Bob", 19, 88, 92, 82, "Street 2"),
    ("Cathy", 17, 91, 85, 89, "Street 3")
]

# 定义列名
columns = ["name", "age", "chinese_score", "math_score", "english_score", "address"]

# 创建DataFrame
df = spark.createDataFrame(data, columns)

# 展示原始数据
print("原始数据:")
df.show()

# 转换为多个class和score列的格式
df_transformed = df.select(
    col("name"), col("age"), col("address"),
    expr("stack(3, 'chinese', chinese_score, 'math', math_score, 'english', english_score) as (class, score)")
)

# 展示转换后的数据
print("转换后的数据:")
df_transformed.show()

# 停止SparkSession
spark.stop()

方式二

from pyspark.sql import SparkSession
from pyspark.sql.functions import lit

# 创建SparkSession
spark = SparkSession.builder.appName("StudentScores").getOrCreate()

# 创建示例数据
data = [
    ("Alice", 18, 85, 90, 78, "Street 1"),
    ("Bob", 19, 88, 92, 82, "Street 2"),
    ("Cathy", 17, 91, 85, 89, "Street 3")
]

# 定义列名
columns = ["name", "age", "chinese_score", "math_score", "english_score", "address"]

# 创建DataFrame
df = spark.createDataFrame(data, columns)

# 展示原始数据
print("原始数据:")
df.show()

# 生成 'chinese' 类别的DataFrame
df_chinese = df.select("name", "age", "address", 
                       lit("chinese").alias("class"), 
                       col("chinese_score").alias("score"))

# 生成 'math' 类别的DataFrame
df_math = df.select("name", "age", "address", 
                    lit("math").alias("class"), 
                    col("math_score").alias("score"))

# 生成 'english' 类别的DataFrame
df_english = df.select("name", "age", "address", 
                       lit("english").alias("class"), 
                       col("english_score").alias("score"))

# 使用union将多个DataFrame合并
df_union = df_chinese.union(df_math).union(df_english)

# 展示转换后的数据
print("转换后的数据:")
df_union.show()

# 停止SparkSession
spark.stop()


http://www.kler.cn/news/363690.html

相关文章:

  • 梳理一下spring中,与message相关的知识点
  • LLM-数据集-测试集-CValues
  • 【T+】畅捷通T+软件更新补丁提示当前系统中没有安装T+产品
  • 若依前后分离版集成积木报表
  • Spring Boot配置文件不识别变量的解决方案
  • J.D商品详情,一“网”打尽 —— PHP爬虫API数据获取全攻略
  • 【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-3
  • 洛谷 P1186 玛丽卡(最短路,并查集,线段树)
  • 【LeetCode】修炼之路-0006-Zigzag Conversion (Z 字形变换)【python】
  • Python编程指南
  • Oracle T5-2 ILOM配置
  • TH-OCR:强大的光学字符识别工具与车牌识别应用
  • 【大模型实战篇】大模型分词算法BPE(Byte-Pair Encoding tokenization)及代码示例
  • WPF的UpdateSourceTrigger属性
  • 90V转5V4A同步降压芯片WT6037
  • vue前端接包(axios)+ 前端导出excel(xlsx-js-style)
  • 植物端粒到端粒(T2T)基因组研究进展与展望
  • Android 图片相识度比较(pHash)
  • linux-牛刀小试
  • NAND FLASH 与 SPI FLASH
  • Python基于OpenCV的实时疲劳检测
  • AI网关对企业的意义及如何构建 AI 网关
  • [Windows] 很火的开源桌面美化工具 Seelen UI v2.0.2
  • Github 2024-10-18Java开源项目日报Top9
  • 使用 SSH 连接 GitLab 的常见问题及解决方案
  • 摄像机实时接入分析平台LiteAlServer视频智能分析软件抽烟检测算法的应用场景