我正在执行以下使用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)