将大数据从 Hadoop 导入 Spark 的有效方法

Posted

技术标签:

【中文标题】将大数据从 Hadoop 导入 Spark 的有效方法【英文标题】:Efficient way of getting big data from Hadoop into Spark 【发布时间】:2021-02-06 21:39:36 【问题描述】:

由于我刚开始涉足大数据领域,我正在寻找有关如何将一些数据导入 Spark 以进行分析的最有效方法的建议。

SQL 查询相当大,有多个子查询,每个子查询都有自己的“何时”、“分组依据”等。 最终数据将有 100 万到 2000 万行。

如果我运行 spark sql 查询并使用 pyspark 将其保存到数据帧中,或者如果我将每个子查询提取到不同的 spark 数据帧中并使用 spark 进行分组/过滤等,这是否相同(性能方面)? ?

例如,这两种方法在处理我的数据时使用的资源量/时间是否相同?

方法一:

df_final = spark.sql("""
With subquery 1 as(...),
     subquery 2 as(...),
     subquery 3 as(...),
     ...
                   
select * from subquery n
"""

方法二:

df1 = spark.sql(subquery 1)
df2 = spark.sql(subquery 2)
...

df_final = *spark manipulation of dataframes here"

如果有任何建议,我将不胜感激。谢谢

【问题讨论】:

【参考方案1】:

Spark 将创建一个在两种情况下都应该等效的 DAG。两种情况下的性能应该相同。

【讨论】:

以上是关于将大数据从 Hadoop 导入 Spark 的有效方法的主要内容,如果未能解决你的问题,请参考以下文章

如何有效地将大数据从数据中心移动到 Azure Blob 存储,以便以后通过 HDInsight 进行处理?

基于spark的关系型数据库到HDFS的数据导入

用 Spark 为 Elasticsearch 导入搜索数据

Spark向Elasticsearch批量导入数据,出现重复的问题定位

如何有效地将大字符串从 Python 传递到 C++ 扩展方法?

spark与hadoop相比,存在哪些缺陷