大数据处理及PySpark版本问题

咨询社区几个大数据的问题:
1.一般做离线处理,根据现有数据库做数据分析,比如多张表,单表数据量亿级以上(有一对一也有一对多),有什么好的方式合并多个表的数据?最佳实践是什么?
2.PySpark,Python,Spark,Hadoop哪些版本是兼容的?PySpark是要和Spark的版本保持一致吗?(尝试了Spark2.2,Python3.8,PySpark3.1.2不兼容)