私はScalaでApache Sparkを使用しています。
最初の行に列名がないcsvファイルがあります。こんな感じです:
28,Martok,49,476
29,Nog,48,364
30,Keiko,50,175
31,Miles,39,161
列はID、名前、年齢、numOfFriendsを表します。
私のScalaオブジェクトでは、次のようにcsvファイルからSparkSessionを使用してデータセットを作成しています。
val spark = SparkSession.builder.master("local[*]").getOrCreate()
val df = spark.read.option("inferSchema","true").csv("../myfile.csv")
df.printSchema()
プログラムを実行すると、結果は次のようになります。
|-- _c0: integer (nullable = true)
|-- _c1: string (nullable = true)
|-- _c2: integer (nullable = true)
|-- _c3: integer (nullable = true)
データセットの列に名前を追加するにはどうすればよいですか?
toDF
を使用して、CSVファイルを読み取るときに列名を指定できます。
val df = spark.read.option("inferSchema","true").csv("../myfile.csv").toDF(
"ID", "name", "age", "numOfFriends"
)
または、すでにDataFrameを作成している場合は、次のように列の名前を変更できます。
val newColNames = Seq("ID", "name", "age", "numOfFriends")
val df2 = df.toDF(newColNames: _*)