小编Ram*_*jan的帖子

scala中的列表未获得更新

我是Scala Collections的新手,目前我想将给定的字符串列表分成两个列表的元组(List[String], List[String]),其中包含回文字符串列表和其余输入字符串列表.

例如,如果输入List("racecar", "abcd", "lilil", "effg") 应该是(List("racecar", "lilil"), List("abcd", "effg"))

我有一个使用过滤器的解决方案.但是,目前,尝试使用foldLeft优化我的解决方案.我的新方法如下:

def stringTuples2(strings: List[String]): (List[String], List[String]) = {
strings.foldLeft((List[String](), List[String]()))((b, a) => {
  if (a.equals(a.reverse)) { b._1 :+ a; b }
  else { b._2 :+ a; b }
})}
Run Code Online (Sandbox Code Playgroud)

I am not sure, what I am doing wrong, but the output for this solution is Tuple of two empty lists, i.e. (List(), List()).

Help is appreciated. Thanks!

scala tuples list foldleft

4
推荐指数
1
解决办法
79
查看次数

如果你有Reads [T]和Writes [T],那么Format [T]的目的是什么?

我只是花了几个小时来探索它Play Framework (2.5.1),我很困惑,为什么你会创建一个Format你已经定义ReadsWrites.通过为您的类定义ReadsWrites,您没有定义将类转换为和从中转换所需的所有功能JsValue吗?

json scala playframework-2.0

3
推荐指数
1
解决办法
91
查看次数

使用 Spark Scala 计算平均值

如何使用以下两个数据集计算 Spark Scala 中每个位置的平均工资?

File1.csv(第4列是工资)

Ram, 30, Engineer, 40000  
Bala, 27, Doctor, 30000  
Hari, 33, Engineer, 50000  
Siva, 35, Doctor, 60000
Run Code Online (Sandbox Code Playgroud)

File2.csv(第2列是位置)

Hari, Bangalore  
Ram, Chennai  
Bala, Bangalore  
Siva, Chennai  
Run Code Online (Sandbox Code Playgroud)

以上文件未排序。需要加入这两个文件并找到每个地点的平均工资。我尝试使用下面的代码但无法成功。

val salary = sc.textFile("File1.csv").map(e => e.split(","))  
val location = sc.textFile("File2.csv").map(e.split(","))  
val joined = salary.map(e=>(e(0),e(3))).join(location.map(e=>(e(0),e(1)))  
val joinedData = joined.sortByKey()  
val finalData = joinedData.map(v => (v._1,v._2._1._1,v._2._2))  
val aggregatedDF = finalData.map(e=> e.groupby(e(2)).agg(avg(e(1))))    
aggregatedDF.repartition(1).saveAsTextFile("output.txt")  
Run Code Online (Sandbox Code Playgroud)

请帮助编写代码和示例输出,看看它的外观。

非常感谢

scala join apache-spark

3
推荐指数
1
解决办法
4万
查看次数

将 spark 数据框中的两列转换为 Map 类型?

例如,我有两列

 Code   Department
    E.          ECE
    C.          CSE
Run Code Online (Sandbox Code Playgroud)

我想将其转换为地图类型,如下所示

Map( E -> ECE, C -> CSE) 
Run Code Online (Sandbox Code Playgroud)

注意 - 当前使用带有 Scala 的 spark 2.2。

apache-spark apache-spark-sql

3
推荐指数
1
解决办法
5672
查看次数

如何在pyspark函数中使用全局变量

首先,我在代码开头有两个变量。

numericColumnNames = []
categoricalColumnsNames = [];
Run Code Online (Sandbox Code Playgroud)

然后在 main 方法中,我为这些值赋值

def main():
  #clickRDD = sc.textFile("s3a://wer-display-ads/day_0_1000.csv"); 
  clickRDD = sc.textFile("data/day_0_1000.csv");
  numericColumnNames , categoricalColumnsNames = getColumnStructure();
Run Code Online (Sandbox Code Playgroud)

然后当我想在以下函数中使用这些变量时,这些变量没有更新并且为空

def dataToVectorForLinear(clickDF):
  print (categoricalColumnsNames) ## why this list is empty 
  clickDF = oneHotEncoding(clickDF,categoricalColumnsNames)
Run Code Online (Sandbox Code Playgroud)

可惜我找不到问题所在?感谢您的帮助

python-3.x apache-spark pyspark

3
推荐指数
1
解决办法
1万
查看次数

将JavaPairRDD转换为JavaRDD

我使用ElasticSearch-Hadoop Library从ElsticSearch获取数据.

JavaPairRDD<String, Map<String, Object>> esRDD = JavaEsSpark.esRDD(sc);
Run Code Online (Sandbox Code Playgroud)

现在我有了JavaPairRDD.我想在这个RDD上使用MLLib中的Random Forest.所以我将它转换为JavaPairRDD.toRDD(esRDD)这将给我RDD.使用RDD我再次转换为JavaRDD

JavaRDD<LabeledPoint>[] splits = (JavaRDD.fromRDD(JavaPairRDD.toRDD(esRDD),
            esRDD.classTag())).randomSplit(new double[] { 0.5, 0.5 });

JavaRDD<LabeledPoint> trainingData = splits[0];
JavaRDD<LabeledPoint> testData = splits[1];
Run Code Online (Sandbox Code Playgroud)

我想将trainingData和TestData传递给Random Forest算法,但它在编译时给出了转换异常.

类型不匹配:无法从JavaRDD [Tuple2 [String,Map [String,Object]]] []转换为JavaRDD [LabeledPoint] []

添加方括号,小于和大于符号不起作用

任何人都可以向我推荐铸造的正确方法.我是Spark Datastrucutres的新手.

java elasticsearch apache-spark rdd apache-spark-mllib

2
推荐指数
1
解决办法
7843
查看次数

Akka http丢失发件人参考

收到一个Future[httpResponse]我试图发送消息后,sender但我失去了参考sender.

这是我的接收方法的代码:

    def receive = {
        case Seq(method: HttpMethod, endpoint: String, payload: String) ? {
          // I have the correct sender reference
          implicit val materializer: ActorMaterializer = ActorMaterializer(ActorMaterializerSettings(context.system)) // needed by singleRequest method below
          // I have the correct sender reference

          val response: Future[HttpResponse] = Http(context.system).singleRequest(HttpRequest(method = method, uri = endpoint, entity = payload))
          println("http request sent")
          // I have the correct sender reference
          response onSuccess {
            case HttpResponse(statusCode, _, entity, _) ? { …
Run Code Online (Sandbox Code Playgroud)

scala akka akka-http

2
推荐指数
1
解决办法
200
查看次数

将拆分与数据帧一起使用时出现未找到的错误

我正在使用SparkScala。我有以下代码在spark-shell上运行良好,但是当我尝试将其移至Intelij时会抛出错误,指出无法找到split

我缺少什么,需要导入split才能正常工作

var outputDF = inputDF.withColumn(srcColumn, 
split(inputDF.col(srcColumn),splitBy).getItem(selectIndex))
Run Code Online (Sandbox Code Playgroud)

scala apache-spark

2
推荐指数
1
解决办法
821
查看次数

pyspark-合并2列集合

我有一个火花数据框,它具有由collect_set函数形成的2列。我想将这2列集合合并为1列集合。我应该怎么做?他们都是套弦

对于实例,我通过调用collect_set形成了2列

Fruits                  |    Meat
[Apple,Orange,Pear]          [Beef, Chicken, Pork]
Run Code Online (Sandbox Code Playgroud)

我如何将其变成:

Food

[Apple,Orange,Pear, Beef, Chicken, Pork]
Run Code Online (Sandbox Code Playgroud)

非常感谢您的提前帮助

apache-spark pyspark pyspark-sql

2
推荐指数
2
解决办法
5626
查看次数

Apache Spark 2.0 (PySpark) - 为 csv 找到多个数据帧错误源

我正在尝试使用 Spark 2.0 中的以下代码创建数据帧。在 Jupyter/Console 中执行代码时,我面临以下错误。有人可以帮助我如何摆脱这个错误吗?

错误:

Py4JJavaError:调用 o34.csv 时发生错误。: java.lang.RuntimeException: 为 csv 找到多个源(org.apache.spark.sql.execution.datasources.csv.CSVFileFormat, com.databricks.spark.csv.DefaultSource15),请指定完全限定的类名。在 scala.sys.package$.error(package.scala:27​​)

代码:

   from pyspark.sql import SparkSession
   if __name__ == "__main__":
      session = SparkSession.builder.master('local')
                     .appName("RealEstateSurvey").getOrCreate()
      df = session \
           .read \
           .option("inferSchema", value = True) \
           .option('header','true') \
           .csv("/home/senthiljdpm/RealEstate.csv")

     print("=== Print out schema ===")
     session.stop()
Run Code Online (Sandbox Code Playgroud)

apache-spark pyspark pyspark-sql

2
推荐指数
1
解决办法
3658
查看次数