记录一些pyspark常用的用法,用到的就会加进来

pyspark指定分区个数

通过spark指定最终存储文件的个数,以解决例如小文件的问题,比hive方便,直观

有两种方法,repartition,coalesce,并且,这两个方法针对RDD和DataFrame都有

repartition和coalesce的区别:

repartition(numPartitions:Int):RDD[T]

coalesce(numPartitions:Int,shuffle:Boolean=false):RDD[T]

他们两个都是RDD的分区进行重新划分,repartition只是coalesce接口中shuffle为true的简易实现,(假设RDD有N个分区,需要重新划分成M个分区)

  • N<M。一般情况下N个分区有数据分布不均匀的状况,利用HashPartitioner函数将数据重新分区为M个,这时需要将shuffle设置为true。
  • 如果N>M并且N和M相差不多,(假如N是1000,M是100)那么就可以将N个分区中的若干个分区合并成一个新的分区,最终合并为M个分区,这时可以将shuff设置为false,在shuffle为false的情况下,如果M>N时,coalesce为无效的,不进行shuffle过程,父RDD和子RDD之间是窄依赖关系。
  • 如果N>M并且两者相差悬殊,这时如果将shuffle设置为false,父子RDD是窄依赖关系,他们同处在一个stage中,就可能造成spark程序的并行度不够,从而影响性能,如果在M为1的时候,为了使coalesce之前的操作有更好的并行度,可以讲shuffle设置为true。

    具体用法:
   rdd.repartition(1)
rdd.coalesce(1)
df = spark.sql('select * from test')
df.repartition(1)
df.repartition(5,col("name")).coalesce(2)

hive-sql与spark-sql中union all 的不同

在hive-sql中,如果字段类型为map<string,string>,那么union all上下两个表中,如果有要表示空的map,必须使用map(null,null)这种方式,事实上,还是一个map对象

但是在spark-sql中,如果有要表示空的map,就不能直接用map(null,null)了,应该直接赋值null,本质上,是一个null值,而不是map对象

最新文章

  1. 【wpf】缓存
  2. Firefox 及其 插件“个性化设置”备份
  3. jdbc中c3p0的配置信息
  4. 日程管理控件 glDatePicker
  5. hdoj 5500 Reorder the Books
  6. kindle paperwhite 使用说明
  7. mysql 建表、查表、查表结构
  8. 从HCE的各种问题 讨论未来趋势
  9. hbase总结(二)-hbase安装
  10. A - 小Y上学记——修学分
  11. mysql报错:java.sql.SQLException: Incorrect string value: &#39;\xE4\xB8\x80\xE6\xAC\xA1...&#39; for column &#39;excelName&#39; at row 1
  12. python学习Day13 函数的嵌套定义、global、nonlocal关键字、闭包及闭包的运用场景、装饰器
  13. PS 制作彩色烟雾
  14. luogu P2325 [SCOI2005]王室联邦
  15. CEO退休
  16. javascript的use strict(使用严格模式)
  17. 【DDD】领域驱动设计实践 —— 业务建模战术
  18. MySqlException: The user specified as a definer (&#39;root&#39;@&#39;%&#39;) does not exist解决方法
  19. Tarjan算法初探 (1):Tarjan如何求有向图的强连通分量
  20. android:View的setTag和getTag使用

热门文章

  1. cloneable以及深拷贝和浅拷贝
  2. 上传一句话木马时&lt;? php被过滤的解决办法
  3. test软件工程第三次作业
  4. 使用iis部署asp.net core 中的坑
  5. grpc使用记录(一) gRPC编译(mscv/gcc)
  6. 大数据 Hibernate
  7. zz 勵志貼,成功是努力加对的方向
  8. 二分查找时间复杂度、partition时间复杂度
  9. java判断文件真实类型
  10. 零起点PYTHON足彩大数据与机器学习实盘分析