У меня есть фрейм данных: yearDF
, полученный при чтении таблицы RDBMS на Postgres, которую мне нужно включить в таблицу Hive на HDFS.
val yearDF = spark.read.format("jdbc").option("url", connectionUrl)
.option("dbtable", s"(${execQuery}) as year2017")
.option("user", devUserName)
.option("password", devPassword)
.option("numPartitions",10)
.load()
Прежде чем проглотить его, я должен добавить в него новый столбец: delete_flag
типа данных: IntegerType
. Этот столбец используется для обозначения первичного ключа независимо от того, удалена строка в исходной таблице или нет.
Чтобы добавить новый столбец в существующий фрейм данных, я знаю, что есть опция: dataFrame.withColumn("del_flag",someoperation)
, но нет такой опции для указания типа данных нового столбца.
Я написал StructType для нового столбца как:
val delFlagColumn = StructType(List(StructField("delete_flag", IntegerType, true)))
Но я не понимаю, как добавить этот столбец к существующему фрейму данных: yearDF
. Может кто-нибудь дать мне знать, как добавить новый столбец вместе с его типом данных в существующий фрейм данных?