【问题标题】:Error while casting dataframe column type : scala.runtime.BoxesRunTime.unboxToLong转换数据框列类型时出错:scala.runtime.BoxesRunTime.unboxToLong
【发布时间】:2016-10-12 15:01:38
【问题描述】:

尝试使用以下方法将数据框列类型从“字符串”转换为“长”:

df.withColumn("ColName", df.col("ColName").cast(LongType))

面临运行时错误:

原因:java.lang.ClassCastException:java.lang.String 无法在 scala.runtime.BoxesRunTime.unboxToLong(BoxesRunTime.java:110) 处转换​​为 java.lang.Long

请帮忙

【问题讨论】:

  • 您的代码适用于我的简单示例,因此需要更多信息:您能显示一些示例数据吗?您使用的是哪个 Spark 版本?
  • 内容是一个字符串,你试图告诉它它是一个 Long,它会抱怨。

标签: scala apache-spark apache-spark-sql spark-dataframe


【解决方案1】:
df.withColumn("ColName_new", col("ColName").cast(LongType))

【讨论】:

  • 您能否添加一些解释,说明它的作用以及为什么它解决了 OPs 问题。
猜你喜欢
  • 2010-11-17
  • 2020-11-22
  • 2019-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-14
  • 2015-12-24
相关资源
最近更新 更多