В кадре данных для каждого столбца III я назначаю фиксированную ширину и сохраняю обратно в HDFS, но проблема в том, что я не получаю правильное выравнивание
Вот мой код:
val hdfs=spark.read.option("header","true").option("inferSchema","true").csv("hdfs://localhost:9000/user/akshathasai/fixedwidth.csv").toDF()
hdfs: org.apache.spark.sql.DataFrame = [Name: string, age: int ... 1 more field]
scala> val widths=Array(15,3,10)
widths: Array[Int] = Array(15, 3, 10)
scala> val df=hdfs.columns.zip(widths).foldLeft(hdfs){ (acc,x) => acc.withColumn(x._1,rpad(trim(col(x._1).cast("string")),x._2," "))}
df: org.apache.spark.sql.DataFrame = [Name: string, age: string ... 1 more field]
scala> df.coalesce(1).write.format("csv").option("header","true").option("delimiter","\t").save("hdfs://localhost:9000/user/akshathasai/sai3/fw21")
outputв HDFS выглядит следующим образом:
Name age phonenumber
akshatha 27 9900090252
amrutha 28 9900902423
sharath 29 9900902878
Я хочу, чтобы вывод выглядел так, как показано ниже
Name age phonenumber
akshatha 27 9900090252
amrutha 28 9900902423
sharath 29 9900902878