RDD获取每个元素的数据类型--pyspark

时间:2017-10-31 10:37:24

标签: pyspark rdd

我正在尝试为RDD编写自定义的推理代码。我想得到RDD行中每个元素的数据类型列表。但是当我尝试使用mapper时,看起来每个元素的类型(x)都会导致错误,因为从动作或转换引用RDD。有什么工作要做吗?

尝试#1

rdd = sc.parallelize([[1,2,3,4],[1,2,3,4]])
def type(partition):
    for row in partition:
        for val in row:
            yield {'a':type(val)}

dttype = sample.mapPartitions(type)
dttype.collect()

如果我收集,这就是我得到的

  

例外:您似乎正在尝试广播RDD或   引用动作或转换中的RDD。 RDD转换   并且操作只能由驱动程序调用,而不能在其他内部调用   变换;例如,rdd1.map(lambda x:rdd2.values.count()*   x)因为值转换和计数动作无效   无法在rdd1.map转换中执行。更多   信息,请参阅SPARK-5063。

0 个答案:

没有答案