我正在使用pyspark并希望获取数据帧的前n行。有一个函数叫做limit
。但是,它只接受int
作为参数。有没有办法用更大的值来称呼它?此代码将导致异常:
import sys
dataframe = spark.createDataFrame([('Alice',), ('Bob',)])
dataframe.limit(sys.maxsize)
错误:
An error occurred while calling o127.limit. Trace:
py4j.Py4JException: Method limit([class java.lang.Long]) 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:272)
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.GatewayConnection.run(GatewayConnection.java:214)
at java.lang.Thread.run(Thread.java:748)
我认为提取long
行是有效的要求,不是吗?你知道吗
如问题
limit
中所述,函数只接受int
作为输入。但是sys.maxsize
返回long
,它显示在exception(limit([class java.lang.Long])
)中。为了毫无例外地运行它,您需要将它type cast
转换为int
。你知道吗这里是转换的代码段:-你知道吗
相关问题 更多 >
编程相关推荐