一、Spark数据分析框架的优势
1.1 Spark计算平台简介
Spark提供了多种高级工具,如: Spark SQL + DataFrame应用于查询、Streaming应用于流式计算、 MLlib/ML应用于机器学习、Graphx应用于图处理。但在数据分析工作上,一般只会用到Spark SQL和MLlib/ML。
在计算速度上,Spark SQL要比Hive SQL快的多。
在接口上,Spark要丰富的多。
1.2 Spark接口文档
1.3 Spark适用场景
- 数据量大,计算速度慢
- 数据抽取、统计、建模一体化
二、DataFrame
DataFrame要比RDD快。
RDD可以和DataFrame互相转化。
Pandas.DataFrame也可以和DataFrame互相转化。
三、Spark数据提取—与hive的数据交互
四、小文件合并+存储到表
spark.sql("set hive.merge.mapfiles = true")
spark.sql("set hive.merge.mapredfiles = true")
spark.sql("set hive.merge.size.per.task = 256000000")
spark.sql("set hive.merge.smallfiles.avgsize=256000000")
spark.sql("set hive.exec.compress.output = true")
spark.sql("set parquet.compression=snappy")
spark.sql("set hive.exec.dynamic.partition=true")
spark.sql("set hive.exec.dynamic.partition.mode=nonstrict")
tmp=tmp.repartition(1).persist()
tmp.write.format("hive").mode("append").saveAsTable('table_name', partitionBy=['begin_date', 'country_code'])