gpt4 book ai didi

sql - 根据另一列的子字符串在数据框中创建列,scala

转载 作者:行者123 更新时间:2023-12-05 05:19:16 25 4
gpt4 key购买 nike

我在 dataframe(d1) 中有一列:MODEL_SCORE,其值类似于 nulll7880。我想在 datframe 中创建另一个 column MODEL_SCORE1,它是 MODEL_SCORE 的子字符串。

我正在尝试这个。它正在创建列,但没有给出预期的结果:

val x=d1.withColumn("MODEL_SCORE1", substring(col("MODEL_SCORE"),0,4))

val y=d1.select(col("MODEL_SCORE"), substring(col("MODEL_SCORE"),0,4).as("MODEL_SCORE1"))

最佳答案

一种方法是您可以定义一个 UDF,它将根据您的需要拆分您的列字符串值。示例代码如下,

val df = sc.parallelize(List((1,"nulll7880"),(2,"null9000"))).toDF("id","col1")
df.显示

//输出

+---+--------+
|编号| col1|
+---+----------+
| 1|nulll7880|
| 2| null9000|
+---+--------+

def splitString:(String => String) = {str => str.slice(0,4)}
val splitStringUDF = org.apache.spark.sql.functions.udf(splitString)
df.withColumn("col2",splitStringUDF(df("col1"))).show

//输出

+---+--------+----+
|编号| col1|col2|
+---+--------+----+
| 1|nulll7880|null|
| 2| null9000|null|
+---+--------+----+

关于sql - 根据另一列的子字符串在数据框中创建列,scala,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46665240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com