如何将列表传递到数据帧?

2024-05-18 23:40:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我收到这个错误pyspark.sql.utils.Illegal Argument Exception: requirement failed: The number of columns doesn't match.

旧列名(6):vinagevarrimcapcur

新列名(2):vinage用于以下代码:


schema = StructType([
StructField( 'vin', StringType(), True),StructField( 'age', IntegerType(), True),StructField( 'var', IntegerType(), True),StructField( 'rim', IntegerType(), True),StructField( 'cap', IntegerType(), True),StructField( 'cur', IntegerType(), True)
  ])

data = [['tom', 10,54,87,23,90], ['nick', 15,63,23,11,65], ['juli', 14,87,9,43,21]]

df=spark.createDataFrame(data,schema)
use=['vin','age']

df1=df.toDF(*use)

df1.show()

Tags: truedfagedatauseschemavar错误
1条回答
网友
1楼 · 发布于 2024-05-18 23:40:45

要使用列名列表从数据帧中选择某些列,请使用select,而不是toDF

use = ['vin','age']
df1 = df.select(*use)

toDF仅适用于重命名数据帧中的所有列。它不适合选择某些列

相关问题 更多 >

    热门问题