PySpark toLocalIterator总是挂起

时间:2017-10-06 00:43:03

标签: python apache-spark pyspark

我有一个PySpark数据帧,有49954行,如下所示:

>>pp.pprint(first_row.asDict())

{'broadcast_size': DenseVector([2861334.0, 2861334.0]),
 'comment_count': DenseVector([0.0]),
 'datetime': datetime.datetime(2017, 9, 19, 0, 42, 34, 246795),
 'features': SparseVector(10984, {2: 1.0, 282: 1.0, 287: 0.1847, 288: 0.9828, 289: 1.0, 10981: -0.0726}),
 'feed_id': 391,
 'label': 12,
 'onehot_weekday': SparseVector(6, {1: 1.0}),
 'publisher_id': 2,
 'std_broadcast_size': DenseVector([0.0, 0.0]),
 'vertical_id': 0,
 'wave_time': DenseVector([0.1847, 0.9828]),
 'weekday': 1}

我想使用toLocalIterator一次操作一行值,如下所示:

for row in data.rdd.toLocalIterator():
    do_stuff(row)

但是,我的火花作业完全挂在toLocalIterator上。它似乎与数据框中包含的内容无关,因为我在我的应用程序中也看到了其他数据集的这个问题。

火花仪表板UI在尝试迭代时列出了一个标题为Zeppelin toLocalIterator at <stdin>:5的任务,如上所示,但它只是无限期地运行而没有任何错误消息。出于好奇,我让它运行的最长时间是30分钟。

0 个答案:

没有答案