【问题标题】:Extremely slow pyspark filter非常慢的 pyspark 过滤器
【发布时间】:2021-08-31 05:37:44
【问题描述】:

我正在对具有 minhash jaccard 相似性列的 pyspark 数据帧执行简单的过滤操作。

minhash_sig = ['123', '345']

minhash_sig = [str(x) for x in minhash.signature(doc)]


df = spark.createDataFrame(....) # --dataframe with 100,000 rows
# columns are id, and minhash_array(arrays of minhash signatures).
df = df.withColumn('minhash_array0', array([lit(i) for i in minhash_sig]))
intersect = size(array_intersect("minhash_array0", "minhash_array"))
union = size(array_union("minhash_array0", "minhash_array"))
df = df.withColumn('minhash_sim',intersect/union)

df = df.filter(df.column > .5)
df.head()

我试过 df.head() before the filter 只需几秒钟即可完成。

过滤器操作后的此头部未在运行后 15 分钟内完成。我检查了数据帧的分区数,只有 4 个。

我应该减少分区的数量吗?有没有其他解决方案可以减少计算时间?

【问题讨论】:

    标签: python pyspark databricks


    【解决方案1】:

    能够通过将集群升级到 c5 2x large vs m4 large 来解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-17
      • 1970-01-01
      • 1970-01-01
      • 2013-08-13
      • 1970-01-01
      • 2020-12-01
      • 1970-01-01
      • 2019-05-13
      相关资源
      最近更新 更多