spark dataframe笔记 -- dataframe行转列

本文介绍如何使用Apache Spark将DataFrame中的一行数据拆分为多行,通过具体示例展示了如何利用explode和split函数实现这一操作,对于处理大量文本数据集尤其有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

把dataframe一行内容变成多行。
脚本:

#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
@author:
@contact:
@time:
"""
from __future__ import print_function
from pyspark.sql import SparkSession
import os, time
from pyspark.sql import Row
from pyspark.sql.functions import split, explode

if __name__ == "__main__":
	os.environ['SPARK_HOME'] = "E:/data_page/spark-2.0.2-bin-hadoop2.7"
	spark = SparkSession.builder.appName("test").master("local[2]").getOrCreate()
	datas = ["hi I love you", "hello ni hao", "ni hao"]
	sc = spark.sparkContext
	rdd = sc.parallelize(datas)
	df=rdd.map(lambda x: Row(text=x)).toDF()
	df.show()
	Df_split = df.withColumn('textNew', explode(split('text', ' '))).where('text != ""')
	Df_split.show()
	time.sleep(1)
	spark.stop()

结果如下:

+-------------+
|         text|
+-------------+
|hi I love you|
| hello ni hao|
|       ni hao|
+-------------+

+-------------+-------+
|         text|textNew|
+-------------+-------+
|hi I love you|     hi|
|hi I love you|      I|
|hi I love you|   love|
|hi I love you|    you|
| hello ni hao|  hello|
| hello ni hao|     ni|
| hello ni hao|    hao|
|       ni hao|     ni|
|       ni hao|    hao|
+-------------+-------+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值