[英]Spark DF pivot error: Method pivot([class java.lang.String, class java.lang.String]) does not exist
[英]Getting B cannot be cast to java.lang.String when using Spark SQL
我的問題是當我嘗試從sql.Row
讀取數據作為String
。 我正在使用pyspark,但我也聽說人們也使用Scala API遇到了這個問題。
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打印構造不起作用
repr(sqlRdd.take(2))
也
import pprint
pprint.pprint(sqlRdd.take(2))
兩者都導致ClassCastException。
所以..其他人怎么做? 我開始自己動手了(不幸的是,不能在這里復制/粘貼。)但是我有點懷疑是在重新發明輪子。
嘗試
sqlContext.setConf("spark.sql.parquet.binaryAsString", "true")
我認為自Spark 1.1.0起,他們就將其破壞了-將二進制讀為可以正常工作的字符串,然后他們使其不起作用,但添加了此標志,但將其默認設置為false。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.