大數據實戰-Spark實戰技巧

1.鏈接mysql

--driver-class-path mysql-connector-java-5.1.21.jar
Uploading file...
在數據庫中,SET GLOBAL binlog_format=mixed;java

2.Spark中 使用Hive的udf

一樣使用—jars 才行mysql

3.Spark jupyter使用

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

https://my.oschina.net/albert2011/blog/754174數據庫

使用jupyter-notebook --ip hostname -i來啓動express

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

spark.sql.hive.convertMetastoreOrc=trueapache

使用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"))))spa

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

相關文章
相關標籤/搜索