【问题标题】:How to make a simple Interface using scala如何使用scala制作一个简单的界面
【发布时间】:2019-06-14 10:49:22
【问题描述】:

我的 Spark 项目在 Eclipse 上,我正在使用 Maven 和 Scala IDE。 这是我的代码

package bd.spark_app 
import org.apache.spark.SparkConf 
import org.apache.spark.SparkContext 
import org.apache.spark.SparkContext._ 
import org.apache.spark.sql.SQLContext 
import org.apache.spark.sql._ 
import org.apache.spark.sql.types.IntegerType 
import scala.io.Source 
import org.apache.spark.sql.functions._ 
import scala.collection.mutable.WrappedArray 
import org.apache.log4j._ 
import org.apache.spark.sql.types.{StructType, StructField, StringType}    
import org.apache.spark.sql.Row 
import scala.Array 

object alla { 

  def main(args:Array[String]) = { 
    val conf =newSparkConf().setMaster("local").setAppName("trying ") 
    val sc = new SparkContext(conf) 

    val x = sc.textFile("/home/hadoopusr/sampledata") 

    x.map(_.split(" "))
     .map(str => (
       (str.head.head match { 
          case 'M' => "Magazine" 
          case 'B' => "Book" 
          case 'D' => "Dictionary" 
          case _ => ??? 
        }, 
        str.head.drop(1).dropRight(3).toInt
       ), str.last.toInt)
     ) 
    .reduceByKey(_ + _) 
    .map(tuple => (tuple._1._1, tuple._1._2, tuple._2))

结果是

(Magazine,2003,3),
(Dictionary,2001,24),
(Dictionary,2003,3), 
(Book,2002,1), 
(Magazine,2001,7), 
(Book,2004,10),
(Dictionary,2002,22), 
(Dictionary,2004,10)

我希望结果在表格中

TYPE       YEAR COPIES 
Magazine   2003      3
Dictionary 2001     24
Dictionary 2003      3
Book       2002      1

等等……

但我需要表格在一个简单的界面中。 我是 scala 的新手,在“如何使用 scala 制作接口”方面没有找到任何相关信息

【问题讨论】:

  • 几件事。永远不要发布未格式化的代码——这次我已经为你格式化了,但它几乎无法阅读。也不清楚你在问什么。您想要“在表格中”的结果是什么意思?你是什​​么意思,你需要它“在一个简单的界面”??

标签: eclipse scala apache-spark interface


【解决方案1】:

但我需要表格在一个简单的界面中。

目的是什么?将数据保存在数据库中?

您可以在alla 对象之外定义一个案例类,如下所示:

case class Entry(`type`: String, year: Int, copies: Int)

然后你替换:

      .map(tuple => tuple._1._1, tuple._1._2, tuple._2)

通过

      .map(tuple => Entry(tuple._1._1, tuple._1._2, tuple._2))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2017-06-30
    • 2019-03-04
    • 1970-01-01
    • 2014-10-11
    • 2020-08-22
    相关资源
    最近更新 更多