【问题标题】:Handling high dimensional dataframe in spark/pyspark (2.2*, 2.3.0)在 spark/pyspark (2.2*, 2.3.0) 中处理高维数据帧
【发布时间】:2018-09-25 03:14:48
【问题描述】:

问题 1: 我正在使用大小为 56,000 条记录和 2,100 列/变量的数据框进行分类任务。但是当我尝试在数据集上构建逻辑回归模型(带有正则化)时,spark 运行没有错误,但也没有完成。当我将列数减少到 500 时,一切运行良好。这让我很担心,因为我还有一个 25,000,000 x 3,000 的数据框要训练。


已解决的问题2。请忽略并专注于第一个。 问题2: 当我调用 df.count()、df.show() 或 df.describe() 时,Spark 会抛出一个关于将不兼容类型与“


我在医疗保健领域工作,无法分享我正在使用的数据...

【问题讨论】:

  • 3k 特征通常没有问题,逻辑回归不像大多数其他方法那样苛刻。因此,如果您有 10G 执行器内存甚至 10G 执行器开销,您应该没问题。我想少一点也可以。好吧,如果您将整数列 $"intCol" 与字符串 lit("abc") 进行比较,这将引发错误。查看日志以了解 spark 实际期望的类型并进行适当的转换。
  • 您使用的是来自pyspark.ml.classification import LogisticRegression 吗?
  • @ElmarMacek,我不是在比较不兼容的类型。简单地获取行数的调用会引发 python 不兼容的比较异常。我将在我的代码的每一行强制执行以调试源是否是 count() 以外的其他函数
  • @MichaelWest 是的

标签: apache-spark apache-spark-sql apache-spark-mllib apache-spark-ml


【解决方案1】:

关于问题 2。惰性操作不起作用。他们不工作,因为他们很懒。采取行动时会处理数据。为了帮助找到问题的根源,请返回您的转换并尝试类似df.show()df.count() 的操作。当您不再收到错误时,下一次转换会出现问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-24
    • 2016-11-04
    • 2018-08-10
    • 1970-01-01
    • 2018-03-09
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    相关资源
    最近更新 更多