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
Apache spark Apache Spark遇到了非常奇怪的数据倾斜_Apache Spark_Pyspark_Apache Spark Sql_Spark Dataframe - Fatal编程技术网

Apache spark Apache Spark遇到了非常奇怪的数据倾斜

Apache spark Apache Spark遇到了非常奇怪的数据倾斜,apache-spark,pyspark,apache-spark-sql,spark-dataframe,Apache Spark,Pyspark,Apache Spark Sql,Spark Dataframe,环境:Spark 1.6.3,纱线上的Spark,150个执行器*2个内核,每个6 GB(内存为40%),python 我有一个spark数据框,它有3列:{int('userId')、longInt('productId')、double('CatgResult')},数据框的长度约为10亿 数据具有一个特征,即当一个“userId”-“productId”对作为密钥时,整个数据帧中最多只存在一个另一个对应项,并且大多数“userId”-“productId”对可能是整个数据帧中唯一的一对 下

环境:Spark 1.6.3,纱线上的Spark,150个执行器*2个内核,每个6 GB(内存为40%),python

我有一个spark数据框,它有3列:{int('userId')、longInt('productId')、double('CatgResult')},数据框的长度约为10亿

数据具有一个特征,即当一个“userId”-“productId”对作为密钥时,整个数据帧中最多只存在一个另一个对应项,并且大多数“userId”-“productId”对可能是整个数据帧中唯一的一对

下面是代码:

# From HIVE, to dismiss other factors.
unionTable = sqlContext.sql("SELECT * FROM tempdb.unionTable")
# The problem.
unionTable = unionTable.groupby(['userId', 'productId']).sum('CatgResult')
# Any action.
unionTalbe.show()
每当unionTable.action()出现时,它都会在“groupby().sum()”处停留大约10分钟。从spark web UI中,我可以看到,在该阶段总共150个执行者中: 1.两个执行器输入约200~300MB,但洗牌写入2.5GB,拖后执行时间; 2.其他执行器的输入范围为900MB~32B,洗牌写入的数据量几乎相同

更重要的是:

  • 我试着用str(unionTable['userId'])+“::”+str(unionTable['productId'])将每个'userId'-'productId'对组合成一个字符串键,但没有用

  • 然后我附加了一个随机的int[0,10]作为字符串后缀,这也没用

  • 我将数据帧转换为rdd,reduceByKey、skew仍然存在,但需要花费更多的时间

  • 在整个程序中,这个groupby()或reduceByKey()占用了95%的总执行时间,我不知道发生了什么

    我的问题是: 这种数据倾斜严重拖累了我的程序,因为我要处理数以万亿计的数据,有时会出现“无序输出位置丢失”错误。。我必须找出问题所在,以及如何解决数据偏差


    你有什么问题吗?我的问题是:这种数据倾斜严重拖累了我的程序,因为我要处理数以万亿计的数据,有时会出现“无序输出位置丢失”错误。。我必须找出问题所在,以及如何解决数据偏差。不确定这是否相关,但这是我所知道的唯一与偏差相关的pyspark问题: