Spark - 如何从数据集中提取n行?

时间:2016-09-01 22:11:28

标签: python apache-spark

我有一个48790行的pyspark数据框,其中37109有[income == 0]。 我想将这37109行减少到一个随机的10 000行。这样我只剩下10 000行,收入== 0(我正在为ML算法平衡类)。

如何获取数据帧的10000行?

我试过了:

StructType(List(StructField(features,VectorUDT,true),StructField(income,DoubleType,true)))

但它会出错:

ros1_bridge

这是data6架构:

Traceback (most recent call last):
  File "bin/ros1_bridge_generate_factories", line 11, in <module>
    from ros1_bridge import generate_cpp
  File "/home/ros/ros2_ws/src/ros2/ros1_bridge/ros1_bridge/__init__.py", line 13, in <module>
    import genmsg
ImportError: No module named 'genmsg'

1 个答案:

答案 0 :(得分:2)

当我使用DataFrame的“except”功能时,我遇到了与Spark版本2.1.0相同的问题。这非常令人困惑,似乎是“除”功能的错误。

“except”或“subtract”运算符将触发LeftAnti计划,然后将调用“JoinSelection.apply”函数,其中将调用“ExtractEquiJoinKeys.unapply”函数,然后将调用“Literal.default”函数, “Literal.default”函数不支持VectorUDT的dataType,只是抛出运行时异常。这就是这个问题的原因。