我有一个像这样的数据帧
import pandas as pd
df = pd.DataFrame({'hist': [[1, 2, 3], [0, 1, 0], [1, 0, 0]]})
df = spark.createDataFrame(df)
我想聚合dataframe并返回元素类型的hist
和。除I之外的结果是[2, 3, 3]
。你知道吗
我试过这么做
from pyspark.sql.types import ArrayType, IntegerType
from pyspark.sql import functions as F
df.agg(F.udf(lambda x: list(np.sum(x, axis=0).astype('int')), ArrayType(IntegerType()))(F.collect_list(df.hist))).show(10, False)
但我犯了个错误
expected zero arguments for construction of ClassDict (for numpy.dtype)
我不希望这样,因为我显式地将UDF的输出转换为列表类型。你知道吗
我想如果你只需要一个向量,它返回行和,那就简单一点。你知道吗
输出:
相关问题 更多 >
编程相关推荐