Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spark sql查询与数据帧函数_Sql_Performance_Apache Spark_Dataframe_Apache Spark Sql - Fatal编程技术网

Spark sql查询与数据帧函数

Spark sql查询与数据帧函数,sql,performance,apache-spark,dataframe,apache-spark-sql,Sql,Performance,Apache Spark,Dataframe,Apache Spark Sql,使用Spark执行良好的性能。我想知道通过SQLContext使用sql查询是否好,或者通过数据帧函数(如df.select())进行查询是否更好 有什么想法吗?:) 没有任何性能差异。这两种方法使用完全相同的执行引擎和内部数据结构。归根结底,一切都归结为个人喜好 可以说,DataFrame查询更容易以编程方式构造,并提供最小的类型安全性 普通SQL查询可以更简洁、更容易理解。它们也是可移植的,并且可以在没有任何修改的情况下使用每种支持的语言。使用HiveContext,这些还可用于公开某些功

使用Spark执行良好的性能。我想知道通过
SQLContext
使用sql查询是否好,或者通过数据帧函数(如
df.select()
)进行查询是否更好


有什么想法吗?:)

没有任何性能差异。这两种方法使用完全相同的执行引擎和内部数据结构。归根结底,一切都归结为个人喜好

  • 可以说,
    DataFrame
    查询更容易以编程方式构造,并提供最小的类型安全性

  • 普通SQL查询可以更简洁、更容易理解。它们也是可移植的,并且可以在没有任何修改的情况下使用每种支持的语言。使用
    HiveContext
    ,这些还可用于公开某些功能,这些功能可能以其他方式无法访问(例如,没有Spark包装器的UDF)


    • 没有任何性能差异。这两种方法使用完全相同的执行引擎和内部数据结构。归根结底,一切都归结为个人喜好

      • 可以说,
        DataFrame
        查询更容易以编程方式构造,并提供最小的类型安全性

      • 普通SQL查询可以更简洁、更容易理解。它们也是可移植的,并且可以在没有任何修改的情况下使用每种支持的语言。使用
        HiveContext
        ,这些还可用于公开某些功能,这些功能可能以其他方式无法访问(例如,没有Spark包装器的UDF)


        • 理想情况下,Spark的Catalyster应该优化对同一执行计划的两个调用,并且性能应该相同。如何打电话只是你的风格问题。
          事实上,与Hortonworks()的报告有所不同,在这种情况下,当您需要按记录名降序排列的分组记录时,SQL的性能优于数据帧。

          理想情况下,Spark的催化剂应该优化对同一执行计划的两个调用,并且性能应该相同。如何打电话只是你的风格问题。
          事实上,与Hortonworks()的报告有所不同,在这种情况下,当您需要按记录名降序排列的分组记录时,SQL的性能优于数据帧。

          通过使用数据帧,可以将SQL分解为多个语句/查询,这有助于调试,易于增强和代码维护

          将复杂的SQL查询分解为更简单的查询并将结果分配给DF可以更好地理解


          通过将查询拆分为多个DFs,开发人员可以利用缓存、修复(使用unique/close-to-unique键在分区之间均匀分布数据)的优势。

          通过使用DataFrame,可以将SQL拆分为多个语句/查询,这有助于调试、轻松增强和代码维护

          将复杂的SQL查询分解为更简单的查询并将结果分配给DF可以更好地理解


          通过将查询拆分为多个DFs,开发人员获得了使用缓存、修复(使用unique/close-to-unique键在分区之间均匀分布数据)的优势。

          唯一重要的是使用何种底层算法进行分组。 哈希聚合将比排序聚合更有效。SortAggregation-将对行进行排序,然后收集匹配的行。O(n*logn) HashAggregation使用键作为分组列创建一个HashMap,其余列作为映射中的值。
          Spark SQL尽可能使用HashAggregation(如果值的数据是可变的)。O(n)

          唯一重要的是使用哪种底层算法进行分组。 哈希聚合将比排序聚合更有效。SortAggregation-将对行进行排序,然后收集匹配的行。O(n*logn) HashAggregation使用键作为分组列创建一个HashMap,其余列作为映射中的值。
          Spark SQL尽可能使用HashAggregation(如果值的数据是可变的)。O(n)

          如果问题是关于SQL order by vs Spark orderBy method,您的答案是否相同?谢谢。如果问题是关于SQL order by vs Spark orderBy method,您的答案也一样吗?谢谢。当我们使用spark sql查询时,我们可以在中间级别缓存数据吗??因为在使用dataframe API时,我们可以通过将查询拆分为多个部分来轻松实现。当我们使用spark sql查询时,我们可以在中间级别缓存数据吗??因为在使用dataframe API时,我们可以通过将查询拆分为多个部分来轻松实现。在使用spark sql query时,我们可以在中间级别缓存数据吗??因为在使用dataframe API时,我们可以通过将查询拆分为多个部分来轻松实现。在使用spark sql query时,我们可以在中间级别缓存数据吗??因为在使用DataFrameAPI时,我们可以通过将查询拆分为多个部分来轻松实现这一点。