我是使用Spark数据帧的新手。我正在尝试将extends Node2D
var text = PrintText()
func PrintText():
return("Print Text Once")
func _ready():
pass
func _input(event):
if event.is_action_pressed("ui_left"):
print(text)
方法与Spark(Spark版本2.x)一起使用,并遇到以下错误:
Py4JError:调用o387.pivot时发生错误。跟踪: py4j.Py4JException:方法ivot([class java.lang.String,class java.lang.String])不存在
即使我在此处将pivot
的功能设为agg
,我实际上也不需要应用任何聚合。
我的数据框如下:
first
预期:
+-----+-----+----------+-----+
| name|value| date| time|
+-----+-----+----------+-----+
|name1|100.0|2017-12-01|00:00|
|name1|255.5|2017-12-01|00:15|
|name1|333.3|2017-12-01|00:30|
我正在尝试的方式:
+-----+----------+-----+-----+-----+
| name| date|00:00|00:15|00:30|
+-----+----------+-----+-----+-----+
|name1|2017-12-01|100.0|255.5|333.3|
我这里的错误是什么?
答案 0 :(得分:2)
问题是values="value"
函数中的pivot
参数。这应该用于列出要使用的实际值列表,而不是列名。来自documentation:
values –值列表,这些值将转换为输出DataFrame中的列。
和一个示例:
df4.groupBy("year").pivot("course", ["dotNET", "Java"]).sum("earnings").collect() [Row(year=2012, dotNET=15000, Java=20000), Row(year=2013, dotNET=48000, Java=30000)]
对于问题values
中的示例,应将其设置为["00:00","00:15", "00:30"]
。但是,values
参数通常不是必需的(但它将使数据透视更有效),因此您可以简单地更改为:
df = df.groupBy(["name","date"]).pivot("time").agg(first("value"))