You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何将Spark DataFrame列值转换为小写/大写?

在Java Spark中实现DataFrame列值转小写

需求说明

输入DataFrame:

name | country | src        | city       | debit
---------------------------------------------
"foo"| "NZ"    | salary     | "Auckland" | 15.0
"bar"| "Aus"   | investment | "Melbourne"| 12.5

期望输出(将city列值转为小写):

name | country | src        | city       | debit
------------------------------------------------
"foo"| "NZ"    | salary     | "auckland" | 15.0
"bar"| "Aus"   | investment | "melbourne"| 12.5

Java实现方案

在Spark Java API中,可借助org.apache.spark.sql.functions提供的lower()函数,配合DataFrame.withColumn()方法完成列值转换:

1. 导入必要类

确保引入Spark SQL相关工具类:

import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import static org.apache.spark.sql.functions.col;
import static org.apache.spark.sql.functions.lower;

2. 核心实现代码

// 初始化SparkSession(本地测试用,生产环境可调整配置)
SparkSession spark = SparkSession.builder()
        .appName("ColumnValueLowercase")
        .master("local[*]")
        .getOrCreate();

// 假设df为你的输入DataFrame
Dataset<Row> df = ...;

// 将city列值转为小写,替换原列
Dataset<Row> resultDf = df.withColumn("city", lower(col("city")));

// 打印验证结果
resultDf.show();

代码说明

  • lower(col("city")):接收指定列对象,将列内所有字符串值转换为小写,返回新的Column对象
  • withColumn("city", ...):用转换后的Column覆盖原city列;若需保留原列,可指定新列名,比如withColumn("city_lower", lower(col("city")))

内容的提问来源于stack exchange,提问作者Monu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 15:25:26