我有一个多行平面文件,我希望将其转换为 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 |
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 |