python定义数组类型的函数_将自定义函数应用于数组类型为Datafram的列

Py4JJavaError Traceback (most recent call

last) in ()

----> 1 df.select('counts').rdd.foreach(lambda x: do_something(x))

/usr/hdp/2.5.3.0-37/spark/python/pyspark/rdd.py in foreach(self, f)

745 f(x)

746 return iter([])

--> 747 self.mapPartitions(processPartition).count() # Force evaluation

748

749 def foreachPartition(self, f):

/usr/hdp/2.5.3.0-37/spark/python/pyspark/rdd.py in count(self) 1002

3 1003 """

-> 1004 return self.mapPartitions(lambda i: [sum(1 for _ in i)]).sum() 1005 1006 def stats(self):

/usr/hdp/2.5.3.0-37/spark/python/pyspark/rdd.py in sum(self)

993 6.0

994 """

--> 995 return self.mapPartitions(lambda x: [sum(x)]).fold(0, operator.add)

996

997 def count(self):

/usr/hdp/2.5.3.0-37/spark/python/pyspark/rdd.py in fold(self,

zeroValue, op)

867 # zeroValue provided to each partition is unique from the one provided

868 # to the final reduce call

--> 869 vals = self.mapPartitions(func).collect()

870 return reduce(op, vals, zeroValue)

871

/usr/hdp/2.5.3.0-37/spark/python/pyspark/rdd.py in collect(self)

769 """

770 with SCCallSiteSync(self.context) as css:

--> 771 port = self.ctx._jvm.PythonRDD.collectAndServe(self._jrdd.rdd())

772 return list(_load_from_socket(port, self._jrdd_deserializer))

773

/usr/hdp/2.5.3.0-37/spark/python/lib/py4j-0.9-src.zip/py4j/java_gateway.py

in call(self, *args)

811 answer = self.gateway_client.send_command(command)

812 return_value = get_return_value(

--> 813 answer, self.gateway_client, self.target_id, self.name)

814

815 for temp_arg in temp_args:

/usr/hdp/2.5.3.0-37/spark/python/pyspark/sql/utils.py in deco(*a,

**kw)

43 def deco(*a, **kw):

44 try:

---> 45 return f(*a, **kw)

46 except py4j.protocol.Py4JJavaError as e:

47 s = e.java_exception.toString()

/usr/hdp/2.5.3.0-37/spark/python/lib/py4j-0.9-src.zip/py4j/protocol.py

in get_return_value(answer, gateway_client, target_id, name)

306 raise Py4JJavaError(

307 "An error occurred while calling {0}{1}{2}.\n".

--> 308 format(target_id, ".", name), value)

309 else:

310 raise Py4JError(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值