scala 编写 ip count 对apache 日志 IP 简单统计

对apache 日志 IP 简单统计

运行环境

 centos6.5 jdk1.8 spark1.6  scala-2.10.6


创建新项目 没有scala-sdk 的可以点Create 安装scala SDK

引入本地的scala 目录 点击 Browse


引入spark1.6目录下的lib的jar包

日志格式如下:

ip - - [datetime] "....." status ....

编写代码如下:

package z.test

import org.apache.spark.{SparkConf, SparkContext}

/**
  * Created by z .
  */
object IPCount {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setMaster("local").setAppName("IPCount")
    val sc = new SparkContext(conf);
    val data = sc.textFile("file:///home/z/App/xxxx_access_apache.log")
    data.map{line=>
      val ip = line.split(" ")(0)
      (ip)}.map((_,1)).reduceByKey(_+_).collect().foreach(println(_))
    sc.stop()
  }
}


输出:

(ip,count)


问题:


Spark 和 Scala 版本问题
我的用的spark2.0.x 和 scala-2.10.6 版本不对应
scala-2.10.6.tgz 与 spark-1.6.2-bin-hadoop2.6.tgz 对应


更多资讯关注公众号


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对餐饮数据的销售额统计,可以按照以下步骤进行处理: 1. 数据预处理:将原始数据进行清洗、整合,去除异常数据等。 2. 数据转换:将数据转换为可进行分析的格式,如使用DataFrame等数据结构。 3. 数据分组:将数据按照日期、门店、菜品等维度进行分组。 4. 数据聚合:对分组后的数据进行聚合计算,得出销售额总和。 5. 数据分析:根据聚合结果进行数据分析,如对比不同门店、不同日期、不同菜品的销售额情况。 以下是一份基于Spark SQL的示例代码,可以用于对餐饮数据进行销售额统计: ```scala import org.apache.spark.sql.SparkSession object SalesAnalysis { def main(args: Array[String]): Unit = { val spark = SparkSession.builder() .appName("SalesAnalysis") .master("local[*]") .getOrCreate() // 读取原始数据 val salesData = spark.read.format("csv") .option("header", "true") .option("inferSchema", "true") .load("sales.csv") // 数据转换 val salesDF = salesData.selectExpr("date", "store", "product", "price", "quantity", "price * quantity as amount") // 数据分组和聚合 val salesByDate = salesDF.groupBy("date").sum("amount") val salesByStore = salesDF.groupBy("store").sum("amount") val salesByProduct = salesDF.groupBy("product").sum("amount") // 输出结果 salesByDate.show() salesByStore.show() salesByProduct.show() spark.stop() } } ``` 其中,sales.csv为原始数据文件,包含日期、门店、菜品、单价、数量等字段。代码使用Spark SQL对数据进行处理,实现了按照日期、门店、菜品进行销售额统计的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值