PySpark 相当于 Spark moving() 函数

问题描述 投票:0回答:1

我有一个多行平面文件,我希望将其转换为 rdd/dataframe 作为 4 列数据帧,或通过 PySpark 转换为 rdd 数组。 Spark Scala 代码是,

#from pyspark.sql import SparkSession # Scala equivalant
#from pyspark import SparkContext # Scala equivalant
import org.apache.spark.mllib.rdd.RDDFunctions._
path = '/mypath/file'
spark = SparkSession.builder.appName('findApp').getOrCreate()
rdd = spark.sparkContext.textFile(path).sliding(4, 4).toDF("x", "y", "z", "a")

PySpark 中没有

sliding()
函数。相当于什么?输入的是

A
B
C
D
A2
B2
C2
D2

期望的输出是

x y z a
A B C D
A2 B2 C2 D2
dataframe pyspark apache-spark-sql flat-file
1个回答
0
投票
import pandas as pd
string = """A
B
C
D
A2
B2
C2
D2"""

data = string.split("\n")
col = 4
df = pd.DataFrame([data[i:i+col] for i in range(0, len(data), col)], columns= list("xyza"))

输出:

x y z a
A B C D
A2 B2 C2 D2
© www.soinside.com 2019 - 2024. All rights reserved.