0

I have a dataframe: precisionCols, with one column.

val spColsDF = spark.read.format("jdbc").option("url",hiveMetaConURL)
                                               .option("dbtable", "(select source_columns, precision_columns from bdmerge.scope_tables where tablename='schema.casting') as colsPrecision")
                                               .option("user", metaUserName)
                                               .option("password", metaPassword)
                                               .load()
val precisionCols       = spColsDF.select("precision_columns")

There are only three rows in the dataframe:

precisionCols.collect.foreach(println) => [ptd_balance,qtd_balance,ytd_balance]

I need to concat the column values with a String "_text" and change them to ptd_balance_text,qtd_balance_text,ytd_balance_text

I tried the below ways but I am doing it wrong somehow:

  1. precisionCols.withColumn("precision_columns_text", precisionCols("precision_columns") + lit("_text"))
  2. precisionCols.withColumn("precision_columns_text", precisionCols("precision_columns") + "_text")

Input Data:

-----------------
precision_columns
-----------------
ptd_balance
qtd_balance
ytd_balance

The output comes as:

[ptd_balance,qtd_balance,ytd_balance_text]

The output I am trying to get is:

-----------------
precision_columns
-----------------
ptd_balance_text
qtd_balance_text
ytd_balance_text

Could anyone let me know how to concat a String to existing columns to create a new DataFrame ?

Metadata
  • 2,127
  • 9
  • 56
  • 127

0 Answers0