草庐IT

scala-cats

全部标签

scala - 将 n 个元素的 RDD 转换为单个元素的 RDD

我有一个如下所示的字符串RDDvalrdd1:RDD[String]=RDD("a","b","c","d")我想连接上面RDD的元素并将其转换为如下单个元素的RDDRDD("a,b,c,d")这样做的最佳方法是什么? 最佳答案 使用glom函数:valres:RDD[Array[String]]=RDD("a","b","c","d").glom//>res=RDD(Array("a","b","c","d"))然后您可以使用mkString函数将数组转换为字符串。 关于scala-将

scala - Spark Dataframe - 如何访问 json 结构

我有一个像这样的json文件:{"employeeDetails":{"name":"xxxx","num":"415"},"work":[{"monthYear":"01/2007","workdate":"1|2|3|....|31","workhours":"8|8|8....|8"},{"monthYear":"02/2007","workdate":"1|2|3|....|31","workhours":"8|8|8....|8"}]}我必须从这个json数据中获取工作日期和工作时间。我正在使用Spark2.1.1我试过这样的:valspark=SparkSession.bu

scala - 如何删除以 Apache Spark 中的某个单词开头的多个 hdfs 目录

我使用dstream.saveAsObjectFiles("/temObj")方法在sparkstreaming中保存了对象文件,它在hdfs中显示了多个文件。temObj-1506338844000temObj-1506338848000temObj-1506338852000temObj-1506338856000temObj-1506338860000我想在全部读取后删除所有temObj文件。在spark.js中做这件事的最佳方式是什么?我试过了valhdfs=org.apache.hadoop.fs.FileSystem.get(newjava.net.URI("hdfs://

scala - 在 Spark/Hadoop 中保存为自定义输出格式

我有一个包含多个数据结构的RDD,而这些数据结构之一是Map[String,Int]。为了便于可视化,我在map转换后得到以下内容:valdata=...//ThisisaRDD[Map[String,Int]]在这个RDD的一个元素中,Map包含以下内容:*keyvalue*map_id->7753Oscar->39Jaden->13Thomas->1Chris->52然后在RDD的其他元素中包含其他名称和数字,每个map包含一个特定的map_id。无论如何,如果我简单地执行data.saveAsTextFile(path),我将在我的文件中获得以下输出:Map(map_id->77

scala - Spark 标度 : select column name from other dataframe

有两个json,第一个json有更多的列,并且总是超集。valdf1=spark.read.json(sqoopJson)valdf2=spark.read.json(kafkaJson)除了操作:我喜欢在df1和df2上应用except操作,但是df1有10列,而df2只有8列。如果手动从df1中删除2列,则except将起作用。但是我有50多个表/json,需要对所有50组表/json执行EXCEPT。问题:如何从DF1中仅选择DF2(8)列中可用的列并创建新的df3?所以df3将拥有来自df1的有限列的数据,并且它将与df2列匹配。 最佳答案

scala - Spark 中的 FileNotFound 错误

我在集群上运行一个简单的spark程序:vallogFile="/home/hduser/README.md"//Shouldbesomefileonyoursystemvalconf=newSparkConf().setAppName("SimpleApplication")valsc=newSparkContext(conf)vallogData=sc.textFile(logFile).cache()valnumAs=logData.filter(line=>line.contains("a")).count()valnumBs=logData.filter(line=>line

scala - 将数据帧写入 HDFS 时出现 NumberFormatException 错误

我正在将dataframe写入HDFS,代码如下final_df.write.format("com.databricks.spark.csv").option("header","true").save("path_to_hdfs")它给我以下错误:Causedby:java.lang.NumberFormatException:Forinputstring:"124085346080"下面的完整堆栈:atorg.apache.spark.sql.execution.datasources.DefaultWriterContainer.writeRows(WriterContaine

scala - 不止一个 Spark 上下文错误

我在下面有这个Spark代码:importorg.apache.hadoop.hbase.client._importorg.apache.hadoop.hbase.{HBaseConfiguration,HTableDescriptor}importorg.apache.hadoop.hbase.mapreduce.TableInputFormatimportorg.apache.hadoop.hbase.io.ImmutableBytesWritableimportorg.apache.hadoop.hbase.util.Bytesimportkafka.serializer.St

scala - Spark 选择并添加带有别名的列

我想选择几列,添加几列或划分,用一些列作为空格填充并用新名称作为别名存储它们。例如在SQL中应该是这样的:select""ascol1,basb1,c+dasefromtable我如何在Spark中实现这一目标? 最佳答案 您也可以使用nativeDF函数。例如给出:importorg.apache.spark.sql.functions._valdf1=Seq(("A",1,5,3),("B",3,4,2),("C",4,6,3),("D",5,9,1)).toDF("a","b","c","d")选择列为:df1.select(

scala - 在 scala intellij 中保存数据帧会抛出异常

我正在尝试使用IntellijSparkScala将CSV或XML文件加载到预先存在的配置单元表中,然后在最后一步保存数据帧时出现以下异常。讽刺的是:下面的代码在spark-shell中运行良好,在所有四种情况下都没有任何问题。1。当我使用Hive上下文和Insertinto()时。valsparkConf=newSparkConf().setAppName("TEST")valsc=newSparkContext(sparkConf)valhiveContext=newHiveContext(sc)hiveContext.setConf("hive.exec.dynamic.part