python - 创建数组列但出现错误:TypeError: 'list' object is not callable in PySpark
问题描述
我想从PySpark中的现有列创建一个数组列
--------------------------
col0 | col1 | col2 | col3
--------------------------
1 |a |b |c
--------------------------
2 |d |e |f
--------------------------
我想要这样
-------------
col0 | col1
-------------
1 |[a,b,c]
-------------
2 |[d,e,f]
--------------
我正在尝试这样的 array() 函数
>>> new = df.select("col0",array("col1","col2","col3").alias("col1"))
但收到此错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable
请如果有人对此有解决方案..
解决方案
您需要withColumn()
在创建新列时首先使用,发布您可以根据您的选择使用select()
的列select
df = df.withColumn("col0", array("col1","col2","col3"))
df = df.select("col0")
并且您收到此错误,因为您正在使用.alias()
函数并且编译器正在抱怨
推荐阅读
- javascript - clock.js,有条件地设置东部或中部时间
- android - Android:在视图中使用实体类
- postgresql - postgreSQL:主键不是从 1 开始
- swift - 覆盖在 Swift 中超类扩展中声明的类变量
- python - 返回以大写字母开头的文件中的最后一个单词
- python-3.x - Pytorch RuntimeError:参数#1 'indices' 的预期张量具有标量类型 Long;但得到了 CUDAType
- python - 从父类访问命名元组中的派生属性
- bash - 如果匹配行,SED 搜索并替换超过 1 个模式
- mysql - 显示 2013 年创建的所有项目
- c# - 缺少程序集引用