大數據實戰-Spark實戰技巧

1.連接mysql

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

2.Spark中 使用Hive的udf

同樣使用—jars 才行

3.Spark jupyter使用

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

//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