データフレームがあり、リストから列名を渡すことでtoDFを使用して名前を変更したいのですが、ここで列リストは動的です。以下のようにエラーが発生すると、どのように達成できますかこの?Pyspark - toDF関数に渡すリスト/タプル
>>> df.printSchema()
root
|-- id: long (nullable = true)
|-- name: string (nullable = true)
|-- dept: string (nullable = true)
columns = ['NAME_FIRST', 'DEPT_NAME']
df2 = df.toDF('ID', 'NAME_FIRST', 'DEPT_NAME')
(or)
df2 = df.toDF('id', columns[0], columns[1])
これは、我々が入力されたデータフレームであるだろうどのように多くの列を知っているので、DF2するリストを渡したいいけない場合、私はここ
df2 = df.toDF('id', columns)
pyspark.sql.utils.IllegalArgumentException: u"requirement failed: The number of columns doesn't match.\nOld column names (3): id, name, dept\nNew column names (2): id, name_first, dept_name"
それ以下のように試してみました動作しません。リストを単一の項目として扱い、リストから列を渡す方法は?
彼はすでにそれを試してみましたが、その投げ込みエラー – Pushkr
私はここに投稿する前にこのコードをpysparkでテストしました。 – alpeshpandya
あなたがここでやっていることは、新しいデータフレームを作成することですが、問題は、リストを渡すことによって既存のデータフレームの名前を変更する方法です。上記のコードを実行したら、 'newCols = ['emp_id'、 'FIRST_name'、 'DEPT_NAME']'および 'df.toDF(newCols)'を実行し、それが動作するかどうかを確認してください。 – Pushkr