如何从maptype读取或获取数据(stringtype,stringtype,true)?

时间:2016-03-14 02:36:19

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

如果键和值都是字符串数据类型,那么可以建议我如何从spark中的某个键的maptype获取值。

    |-- properties: map (nullable = true)
    |    |-- key: string
    |    |-- value: string (valueContainsNull = true)

我实际上正在使用hivecontext读取一个hive表,试图从hive数据类型的地图中获取数据,该数据转换为maptype(stringtype,stringtype,true)。

我已经使用getField尝试了这个场景,但它让我误以为是。

    filtered.select($"properties".getField("transferred_bytes")).show()

错误消息: -

org.apache.spark.sql.AnalysisException:GetField在MapType类型的字段上无效(StringType,StringType,true);         在org.apache.spark.sql.catalyst.analysis.Analyzer $ ResolveReferences $ .resolveGetField(Analyzer.scala:307)         在org.apache.spark.sql.catalyst.analysis.Analyzer $ ResolveReferences $$ anonfun $ apply $ 7 $$ anonfun $ applyOrElse $ 2.applyOrElse(Analyzer.scala:271)         在org.apache.spark.sql.catalyst.analysis.Analyzer $ ResolveReferences $$ anonfun $ apply $ 7 $$ anonfun $ applyOrElse $ 2.applyOrElse(Analyzer.scala:260)

0 个答案:

没有答案