【发布时间】:2022-11-02 06:06:43
【问题描述】:
我在本地设置上使用带有 Spark 版本 3.1.1 的 PySpark DataFrame API。在读入数据、执行一些转换等之后,我将DataFrame 保存到磁盘。输出目录与part-0000* 文件一起创建,并且在输出目录中也存在_SUCCESS 文件。但是,我的 part-0000* 始终为空,即零字节。
我试过用parquet 和csv 两种格式编写它,结果相同。就在写作之前,我打电话给df.show() 以确保DataFrame 中有数据。
### code.py ###
from pyspark.sql import SparkSession
from pyspark.sql import functions as F
import configs
spark = SparkSession.builder.appName('My Spark App').getOrCreate()
data = spark.read.csv(configs.dataset_path, sep=configs.data_delim)
rdd = data.rdd.map(...)
data = spark.createDataFrame(rdd)
data = data.withColumn('col1', F.lit(1))
data.show() # Shows top 20 rows with data
data.write.parquet(save_path + '/dataset_parquet/', mode='overwrite') # Zero Bytes
data.write.csv(save_path + '/dataset_csv/', mode='overwrite') # Zero Bytes
我正在运行此代码如下
export PYSPARK_PYTHON=python3
$SPARK_HOME/bin/spark-submit \
--master local[*] \
code.py
【问题讨论】:
-
如果您尝试将 RDD 写入磁盘会发生什么?
-
刚刚用
rdd测试过,结果相同。
标签: python apache-spark pyspark