Я пытаюсь преобразовать тип данных столбца из long в int в spark sql, используя java, я видел некоторые примеры в scala и пробовал, но это не wotking
df.withColumn("is_open", toInt("is_open"));
, где я могунужно изменить.заранее спасибо
df = df.withColumn("is_open", df.col("is_open").cast("int"));
Обратите внимание, что приведение применяется после вычисления данных на предыдущем шаге. Если на предыдущем шаге выбрано select или что-то подобное, он сначала будет вычислен в исходный тип, а затем перейдет к новому типу на следующем шаге. Это не решит проблему с выбором исходного типа.
Вы можете использовать функцию cast .
scala> val df = spark.range(10) df: org.apache.spark.sql.Dataset[Long] = [id: bigint] scala> import org.apache.spark.sql.functions._ import org.apache.spark.sql.functions._ scala> df.withColumn("new_col", col("id").cast("string")) res4: org.apache.spark.sql.DataFrame = [id: bigint, new_col: string]