我刚从Pandas切换到PySpark数据框,发现在PySpark数据框中打印出相同的列会产生错误的值。这是一个例子: 使用熊猫:
df_pandas=pd.read_csv("crime.csv", low_memory=False)
print(df_pandas["CRIMEID"].head(5))
Output:
1321797
1344185
1181882
1182632
1195867
使用PySpark数据帧:
df_spark = sqlContext.read.format('csv').options(header='true', inferSchema='true').load('crime.csv')
df_spark.select("CRIMEID").show(5)
Output:
+-------+
|CRIMEID|
+-------+
|1321797|
| null|
| null|
|1344185|
| null|
+-------+
我也没有丢弃任何空行。有人可以解释为什么会这样吗?我真的很感激一些帮助。
答案 0 :(得分:1)
以下是发生的事情:
在像Spark这样的分布式框架中,数据被划分并分布在整个集群中,肯定会发生数据混乱。
总而言之,Spark并没有给你错误的值,只是它以随机顺序返回你的记录,这与你从熊猫中得到的不同。