Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.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.distinct()性能_Sql_Apache Spark_Duplicates_Distinct - Fatal编程技术网

Spark SQL.distinct()性能

Spark SQL.distinct()性能,sql,apache-spark,duplicates,distinct,Sql,Apache Spark,Duplicates,Distinct,我想通过JDBC从数据库中获取数百GB的数据源,然后使用Spark SQL进行处理。目前我正在做一些分区,数据和进程是通过成批的milion记录进行的。问题是,我还想对我的数据帧应用一些重复数据消除,我打算放弃分批处理的想法,尝试使用一个相应分区的数据帧来处理数百GB的数据 主要问题是:在这种情况下.distinct()将如何工作?Spark SQL是否会首先尝试将所有数据加载到RAM中,然后应用重复数据消除,包括多次洗牌和重新分区?我是否必须确保集群有足够的RAM来容纳原始数据,或者它能够帮助

我想通过JDBC从数据库中获取数百GB的数据源,然后使用Spark SQL进行处理。目前我正在做一些分区,数据和进程是通过成批的milion记录进行的。问题是,我还想对我的数据帧应用一些重复数据消除,我打算放弃分批处理的想法,尝试使用一个相应分区的数据帧来处理数百GB的数据

主要问题是:在这种情况下.distinct()将如何工作?Spark SQL是否会首先尝试将所有数据加载到RAM中,然后应用重复数据消除,包括多次洗牌和重新分区?我是否必须确保集群有足够的RAM来容纳原始数据,或者它能够帮助自己进行HDD存储(从而降低性能)

或者我应该在没有Spark的情况下执行此操作-将数据移动到目标存储,然后应用不同的计数并检测重复项并将其清除?

Spark SQL不用于
不同的
查询;这意味着过滤重复记录的处理发生在执行者,而不是数据库。因此,您关于在执行者处发生洗牌以处理
distinct
的假设是正确的

尽管如此,我仍然建议您继续在Spark上执行重复数据消除,而不是为其建立单独的安排。我个人使用
distinct
的经验非常令人满意。一直以来都是连接推动了我的按钮。

Spark SQL不用于
不同的
查询;这意味着过滤重复记录的处理发生在执行者,而不是数据库。因此,您关于在执行者处发生洗牌以处理
distinct
的假设是正确的

尽管如此,我仍然建议您继续在Spark上执行重复数据消除,而不是为其建立单独的安排。我个人使用
distinct
的经验非常令人满意。一直以来,推动我前进的都是联合