使用glom的spark-shell和pyspark

时间:2019-01-12 14:18:02

标签: apache-spark pyspark spark-shell

我正在执行以下使用spark-shell --master纱线的方案

我在HDFS位置“ /user/cloudera/Day_12_Jan/file.txt”上有一个文本文件 文件内容

  

Spark SQL是Spark的模块,用于结构化数据处理。的           高级查询语言和其他类型信息使Spark SQL           更高效。 Spark SQL将命令转换为以下代码           由执行人处理。一些调整注意事项可能会影响Spark           SQL性能。为了高效地表示我们的数据,它还使用了           非常了解类型。 Spark SQL在           优化查询。           Spark SQL在缓存数据时利用内存中的列式存储。           内存列式功能允许将数据存储在           列格式,而不是行格式。柱状存储允许           本身非常适合商业智能中的分析查询           产品。使用列存储,缓存时数据占用的空间更少           并且如果查询仅取决于数据的子集,则Spark SQL           尽量减少读取的数据。

接下来,我正在如下所示的spark-shell中读取此文件

lua_CFunction

有一个错误,就是glom产生了一个字符串数组,并且联接操作无法应用于对我来说似乎有效的字符串

但是,如果我将同一段代码带到pyspark,我会发现它不是在抱怨相同的错误 由于glom()并非特定于scala或python,而是火花转换,因此为什么它在pyspark中而不是在spark-shell中起作用

问题的pyspark执行

      scala> val readwords=sc.textFile("hdfs://localhost:8020/user/cloudera/Day_12_Jan/file.txt")
             readwords: org.apache.spark.rdd.RDD[String] = hdfs://localhost:8020/user/cloudera/Day_12_Jan/file.txt MapPartitionsRDD[6] at textFile at <console>:27

      scala> readwords.glom().map(x=>("".join(x))).flatMap(line=>(line.split("."))).map(word=>(word,1)).reduceByKey((a,b)=>(a+b)).sortByKey.collect
             <console>:30: error: value join is not a member of String
             readwords.glom().map(x=>("".join(x))).flatMap(line=>(line.split("."))).map(word=>(word,1)).reduceByKey((a,b)=>(a+b)).sortByKey.collect
                                      ^

让我知道我在这里做错什么了。

谢谢 苏米特·帕瓦(Sumit Pawar)

0 个答案:

没有答案