У меня есть data.txt
файл, как показано ниже.
12, 345, 6789
Теперь я хочу выполнить начальное заполнение нулями с указанным количеством цифр в указанном поле файла аргумента или стандартного ввода.Количество цифр, указанное в указанном поле файла аргумента, составляет 8 цифр.Что мне делать?
Это мой код:
import org.apache.spark.sql.types._
import org.apache.spark.sql.types._
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.sql._
//Convert textfile to DF
val conf = new SparkConf().setAppName("ct").setMaster("local").set("spark.driver.allowMultipleContexts", "true")
val sc = SparkContext(conf)
val sparkSess = SparkSession.builder().appName("SparkSessionZipsExample").config(conf).getOrCreate()
val path = "data.txt"
val data = sc.textFile(path)
val colNum = data.first().split(",").size
var schemaString = "key"
for( i <- 1 to colNum - 1) {
schemaString += " value" + i
}
val fields = schemaString.split(" ").map(fieldName => StructField(fieldName, StringType, nullable=true))
val schema = StructType(fields)
val dfWithSchema = sparkSess.read.option("header", "false").schema(schema).csv(path)
dfWithSchema.show()
//add leading zero padding with the specified number of digits
//The number of digits specified in the specified field of the argument file is 8 digits
val df = dfWithSchema.withColumn("key", format_string("%08d", $"key")).show
val df2 = dfWithSchema.withColumn("value2", format_string("%08d", $"value2")).show
Но результат вывода неправильный.
Я хочу получить желаемый результат вывода, как показано ниже.Пожалуйста, помогите мне.
+---------+------+---------+
|key |value1|value2 |
+---------+------+---------+
| 00000012| 345| 00006789|
+---------+------+---------+