我有一个sparkDataframe,看起来像这样:
+-----------+-----+
|foo | bar|
+-----------+-----+
| 3|10119|
| 2| 4305|
+-----------+-----+
它有以下模式
org.apache.spark.sql.types.StructType = StructType(
StructField(foo,ByteType,true),
StructField(bar,LongType,false)
)
如您所见,该列 foo
属于 ByteType
.
我要拿到第一排座位 foo
作为一根弦。
当我尝试的时候
val fooStr = df.first.getAs[String](0)
我得到一个例外:
java.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.String
但是当我使用 toString
,我可以
val myStr = df.first.get(0).toString
为什么我用 Row.getAs[String]
我得到一个铸造例外,但当我使用 toString
,没有错误。使用有什么缺点吗 toString
?
1条答案
按热度按时间6qfn3psc1#
Row.getAs[T](i)
这里的定义是