无法将B转换为java.lang.String使用Spark SQL时

2024-09-28 21:53:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题是当我试图从sql.Row作为String读取数据时。我使用的是pyspark,但我听说人们对scalaapi也有这个问题。在

在pyspark.sql.Row物体是一种非常顽固的生物。引发以下异常:

java.lang.ClassCastException: [B cannot be cast to java.lang.String
 at org.apache.spark.sql.catalyst.expressions.GenericRow.getString(Row.scala 183)

所以我们得到的是其中一个字段被表示为字节数组。以下python打印构造不起作用

^{pr2}$

还有

import pprint
pprint.pprint(sqlRdd.take(2))

两者都会导致类castException。在

所以。。其他人是怎么做到的?不幸的是,我不能复制这个轮子。。我怀疑是这样。在


Tags: langsqlstring生物bejava读取数据pyspark
1条回答
网友
1楼 · 发布于 2024-09-28 21:53:37

试试看

sqlContext.setConf("spark.sql.parquet.binaryAsString", "true")

我认为自从Spark 1.1.0被他们破坏了——把二进制作为字符串来读,然后他们让它不起作用,但是添加了这个标志,但是设置它的默认值为false。在

相关问题 更多 >