Apache spark DataFrame显示字符串表示失败,显示字符串(整数、布尔值、布尔值)不存在
我正试图按照建议捕获由Apache spark DataFrame显示字符串表示失败,显示字符串(整数、布尔值、布尔值)不存在,apache-spark,pyspark,python-3.8,pyspark-dataframes,Apache Spark,Pyspark,Python 3.8,Pyspark Dataframes,我正试图按照建议捕获由show()函数生成的字符串表示,但是showString方法似乎不再是公共的 logger.info('\n{}'.format(raw_data._jdf.showString(20, False, False))) 正在返回以下错误跟踪 Traceback (most recent call last): File "xxxxxxxx/SparkTest/main.py", line 63, in <module> log
show()
函数生成的字符串表示,但是showString
方法似乎不再是公共的
logger.info('\n{}'.format(raw_data._jdf.showString(20, False, False)))
正在返回以下错误跟踪
Traceback (most recent call last):
File "xxxxxxxx/SparkTest/main.py", line 63, in <module>
logger.info('\n{}\n'.format(raw_data._jdf.showString(20, False, False)))
File "xxxxxxxx/envs/SparkTest/lib/python3.8/site-packages/py4j/java_gateway.py", line 1304, in __call__
return_value = get_return_value(
File "xxxxxxxx/envs/SparkTest/lib/python3.8/site-packages/pyspark/sql/utils.py", line 128, in deco
return f(*a, **kw)
File "xxxxxxxx/envs/SparkTest/lib/python3.8/site-packages/py4j/protocol.py", line 330, in get_return_value
raise Py4JError(
py4j.protocol.Py4JError: An error occurred while calling o45.showString. Trace:
py4j.Py4JException: Method showString([class java.lang.Integer, class java.lang.Boolean, class java.lang.Boolean]) does not exist
at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:318)
at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:326)
at py4j.Gateway.invoke(Gateway.java:274)
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.GatewayConnection.run(GatewayConnection.java:238)
at java.base/java.lang.Thread.run(Thread.java:832)
回溯(最近一次呼叫最后一次):
文件“xxxxxxxx/SparkTest/main.py”,第63行,在
logger.info('\n{}\n'.格式(原始数据._jdf.showString(20,False,False)))
文件“xxxxxxxx/envs/SparkTest/lib/python3.8/site packages/py4j/java_gateway.py”,第1304行,在调用中__
返回值=获取返回值(
文件“xxxxxxxx/envs/SparkTest/lib/python3.8/site-packages/pyspark/sql/utils.py”,第128行,装饰
返回f(*a,**kw)
文件“xxxxxxxx/envs/SparkTest/lib/python3.8/site packages/py4j/protocol.py”,第330行,在get\u return\u值中
升起Py4JError(
py4j.protocol.Py4JError:调用o45.showString.Trace时出错:
py4j.Py4JException:方法showString([class java.lang.Integer,class java.lang.Boolean,class java.lang.Boolean])不存在
位于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.base/java.lang.Thread.run(Thread.java:832)
是否还有其他替代方法?错误表明方法
showString(Integer,Boolean,Boolean)
不存在。如果查看源代码,它将Integer
作为第二个参数,但传递的是Boolean
要设置truncate=False
,只需在第二个参数中传递0即可:
logger.info('\n{}'.format(raw_data._jdf.showString(20, 0, False)))
错误表明方法
showString(Integer,Boolean,Boolean)
不存在。如果查看源代码,它将Integer
作为第二个参数,但您正在传递一个Boolean
要设置truncate=False
,只需在第二个参数中传递0即可:
logger.info('\n{}'.format(raw_data._jdf.showString(20, 0, False)))