【发布时间】:2021-02-06 01:50:45
【问题描述】:
我正在尝试修改 PySpark 数据框中的列值,如下所示:
df_cleaned = df_cleaned.withColumn('brand_c', when(df_cleaned['brand'] == "samsung" |\
df_cleaned['brand'] == "oppo", df_cleaned.brand)\
.otherwise('others'))
这会产生以下异常:
调用 o435.or 时出错。跟踪:py4j.Py4JException: 方法 or([class java.lang.String]) 不存在于 py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:318) 在 py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:326) 在 py4j.Gateway.invoke(Gateway.java:274) 在 py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) 在 py4j.commands.CallCommand.execute(CallCommand.java:79) 在 py4j.GatewayConnection.run(GatewayConnection.java:238) 在 java.lang.Thread.run(Thread.java:748)
Traceback(最近一次调用最后一次):文件 “/usr/lib/spark/python/lib/pyspark.zip/pyspark/sql/column.py”,行 115,在_ njc = getattr(self._jc, name)(jc) 文件“/usr/lib/spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py”, 第 1257 行,在 调用 答案,self.gateway_client,self.target_id,self.name)文件“/usr/lib/spark/python/lib/pyspark.zip/pyspark/sql/utils.py”,第 63 行, 在装饰中 返回 f(*a, **kw) 文件“/usr/lib/spark/python/lib/py4j-0.10.7-src.zip/py4j/protocol.py”,行 332,在get_return_value中 format(target_id, ".", name, value)) py4j.protocol.Py4JError: 调用 o435.or 时出错。跟踪:py4j.Py4JException: 方法 or([class java.lang.String]) 不存在于 py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:318) 在 py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:326) 在 py4j.Gateway.invoke(Gateway.java:274) 在 py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) 在 py4j.commands.CallCommand.execute(CallCommand.java:79) 在 py4j.GatewayConnection.run(GatewayConnection.java:238) 在 java.lang.Thread.run(Thread.java:748)
【问题讨论】:
标签: pyspark