大数据实战-Spark实战技巧

Posted Hoult-吴邪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据实战-Spark实战技巧相关的知识,希望对你有一定的参考价值。

1.连接mysql

--driver-class-path mysql-connector-java-5.1.21.jar 在数据库中,SET GLOBAL binlog_format=mixed;

2.Spark中 使用Hive的udf

同样使用—jars 才行

3.Spark jupyter使用

https://www.jb51.net/article/163641.htm

https://my.oschina.net/albert2011/blog/754174

使用jupyter-notebook --ip hostname -i来启动

4.Spark使用hive的orc解析格式

spark.sql.hive.convertMetastoreOrc=true

使用spark写入hive表中的数据,可能会出现空指针问题或者数据越界问题,问题原因是spark的元数据解析问题,而不是hive的元数据解析问题

5.row_number排序算子的使用

import org.apache.spark.sql.expressions.Window
import org.apache.spark.sql.functions.row_number
import org.apache.spark.sql.functions._

1.spark.sql(sql).withColumn("rn", row_number().over(Window.partitionBy('f_trans_id).orderBy(col("f_modify_time").desc))) 2.spark.sql(sql).withColumn("rn", row_number().over(Window.partitionBy('f_trans_id).orderBy(-col("f_modify_time"))))

3.val df = spark.sql(sql)

df.withColumn("rn", row_number().over(Window.partitionBy('f_trans_id).orderBy(-df("f_modify_time"))))

4.spark.sql(sql).withColumn("rn", row_number().over(Window.partitionBy('f_trans_id).orderBy(-'f_modify_time)))

注意:-的方式,经过测试,不稳定,有时可以,有时不可以

6.broadcast广播表

sc.broadcast是广播数据,一般用于rdd广播,而下面的方式用于广播表

import org.apache.spark.sql.functions.broadcast

broadcast(tableData).createOrReplaceTempView


吴邪,小三爷,混迹于后台,大数据,人工智能领域的小菜鸟。 更多请关注 ![file](https://img-blog.csdnimg.cn/20210307224940928.png)

以上是关于大数据实战-Spark实战技巧的主要内容,如果未能解决你的问题,请参考以下文章

大数据实战之spark安装部署

Spark 2.x企业级大数据项目实战(实时统计离线分析和实时ETL)

大数据实战Flume+Kafka+Spark+Spring Boot 统计网页访问量项目

基于ECharts实现大数据项目实战一可视化分析

基于Spark+Grafana可视化电商项目实战,好文收藏~

电商大数据项目-推荐系统实战