Рассмотрим Spark DataFrame df
со следующей схемой:
root
|-- date: timestamp (nullable = true)
|-- customerID: string (nullable = true)
|-- orderID: string (nullable = true)
|-- productID: string (nullable = true)
Один столбец должен быть приведен к другому типу, другие столбцы должны просто обрезать свои пробелы.
df.select(
$"date",
df("customerID").cast(IntegerType),
$"orderID",
$"productId")
.withColumn("orderID", trim(col("orderID")))
.withColumn("productID", trim(col("productID")))
Операции, похоже, требуют другого синтаксиса; Приведение осуществляется через select
, а trim
- через withColumn
.
Я привык к R
и dplyr
, где все вышеперечисленное будет обрабатываться в одной функции mutate
, поэтому смешивание select
и withColumn
кажется немного громоздким.
Есть ли более чистый способ сделать это в одной трубе?