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)))