Spark DataFrame [scala版] 实践小结
Spark DataFrame 使用注意事项
下面介绍的是使用Dataframe时 api 文档中没有写,但是需要注意的坑。
DataFrame API的使用
union()
union()
时需要保证两边的DataFrame字段顺序一样,这里还有一点需要注意,Spark DataFrame的union()
方法默认是不会进行去重的,但是如果是spark sql的话 union是默认会去重的show()
很多时候我们在debug时会使用show()
来查看数据,但是对于大数据集使用show()是会降低性能的,所以不建议在生产环境中使用show()
- more api
DataFrame原生支持的API并不算丰富,DataFrameNaFunctions是对DataFrame的null value相关的api增强,可以使用如下流式调用:df.na.fill(value,Seq(column))
,更多是使用UDF,但是这里需要注意对于非常复杂的逻辑的,建议直接使用sql,因为可能会导致下面提到的stackoverflow。
关于Join
- 在DataFrame中对于同名列是会报错的,所以经常你需要使用alias或者withCloumnRename之类的来解决两个DataFrame重名的问题,但是如果对于join key是等值join的话,可以直接使用