Spark使用JAVA编写自定义函数修改DataFrame

本文的代码涉及几个知识点,都是比较有用: 1、Spark用JAVA编写代码的方式; 2、Spark读取MySQL数据表,并且使用的是自定义SQL的方式,默认会读取整个表的; 3、Spark使用sql.functions的原有方法,给dataframe新增列、变更列; 4、Spark使用udf的自定义函数,给dataframe新增列、变更列; [crayon-5d58c29de01555103587 … 继续阅读Spark使用JAVA编写自定义函数修改DataFrame

Spark数据倾斜解决方法

1、避免shuffle,改reduce join为map join,适用于JOIN的时候有一个表是小表的情况,直接使用collect()获取小表的所有数据,然后brodcast,对大表进行MAP,MAP时直接提取broadcast的小表数据实现JOIN; 2、随机数的方案,对于聚合类操作,可以分步骤进行聚合,第一步,在原来的KEY后面加上随机数(比如1~10),然后进行聚合(比如SUM操作);第二 … 继续阅读Spark数据倾斜解决方法