简体   繁体   English

在 Scala 数据框中将字符串列转换为十进制

[英]cast string column to decimal in scala dataframe

I have a dataframe (scala) I am using both pyspark and scala in a notebook我有一个数据框 (scala) 我在笔记本中同时使用 pyspark 和 scala

#pyspark
spark.read.csv(output_path + '/dealer', header = True).createOrReplaceTempView('dealer_dl')

%scala
import org.apache.spark.sql.functions._
val df = spark.sql("select * from dealer_dl")

How to convert a string column (amount) into decimal in scala dataframe.如何在 Scala 数据框中将字符串列(数量)转换为十进制。

I tried as below.我试过如下。

 %scala
 df = df.withColumn("amount", $"amount".cast(DecimalType(9,2)))

But I am getting an error as below:但我收到如下错误:

error: reassignment to val错误:重新分配给 val

I am used to pyspark and quite new to scala.我习惯了 pyspark 并且对 Scala 很陌生。 I need to do by scala to proceed further.我需要通过 Scala 来做进一步的工作。 Please let me know.请告诉我。 Thanks.谢谢。

in scala you can't reasign references defined as val but val is immutable reference.在 scala 中,您不能重新分配定义为val引用,但val是不可变的引用。 if you want to use reasigning some ref you can use var but better solution is not reasign something to the same reference name and use another val .如果您想使用重新分配一些引用,您可以使用var但更好的解决方案不是将某些内容重新分配给相同的引用名称并使用另一个val For example:例如:

val dfWithDecimalAmount = df.withColumn("amount", $"amount".cast(DecimalType(9,2)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 spark数据帧scala列中字符串的部分匹配 - Partial match of string in a column of spark dataframe scala 在Spark / Scala中将列从十进制转换为二进制字符串 - Converting a column from decimal to binary string in Spark / Scala 如何将 Map[string,Dataframe] 填充为 scala 中 Dataframe 中的列 - How to populate Map[string,Dataframe] as a column in a Dataframe in scala Scala 将字符串列转换并拆分为数据框中的 MapType 列 - Scala transform and split String Column to MapType Column in Dataframe 如何使用 Scala 将数据框中的字符串列解析/转换为日期时间列 - How to parse/convert a string column in dataframe to datetime column with Scala 如何在 Spark 中将 Dataframe 的 String 列转换为 Struct - How do I cast String column of Dataframe As Struct in Spark Scala 将列的十六进制 substring 转换为十进制 - Dataframe org.apache.spark.sql.catalyst.parser.ParseException: - Scala Converting hexadecimal substring of column to decimal - Dataframe org.apache.spark.sql.catalyst.parser.ParseException: SPARK 数据帧错误:无法在使用 UDF 拆分列中的字符串时转换为 scala.Function2 - SPARK dataframe error: cannot be cast to scala.Function2 while using a UDF to split strings in column Scala + Spark + Dataframe异常当我尝试动态转换列并分配排序顺序时 - Scala +Spark+Dataframe Exception When i try to dynamically cast a column and assign sorting order 更新 Scala 中的数据框列 - updating dataframe column in Scala
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM