柚子快報激活碼778899分享:Scala 商品訂單計(jì)算統(tǒng)計(jì)
柚子快報激活碼778899分享:Scala 商品訂單計(jì)算統(tǒng)計(jì)
Scala環(huán)境下載 https://www.scala-lang.org/download/all.html
Scala插件下載 https://plugins.jetbrains.com/plugin/1347-scala/versions https://plugins.jetbrains.com/?
表1(訂單id、訂單日期、顧客id、訂單狀態(tài))
order_id?? ?order_date?? ?order_customer_id?? ?order_status 1?? ?2013-07-25 00:00:00?? ?11599?? ?CLOSED 2?? ?2013-07-25 00:00:00?? ?256?? ?PENDING_PAYMENT 4?? ?2013-07-25 00:00:00?? ?8827?? ?CLOSED
表2(訂單明細(xì)id、訂單id、商品id、商品數(shù)量、總價、單價)
order_item_id?? ?order_item_order_id?? ?order_item_product_id?? ?order_item_quantity?? ?order_item_subtotal?? ?order_item_product_price 1?? ?1?? ?957?? ?1?? ?299.98?? ?299.98 2?? ?2?? ?1073?? ?1?? ?199.99?? ?199.99 3?? ?2?? ?502?? ?5?? ?250?? ?50 4?? ?2?? ?403?? ?1?? ?129.99?? ?129.99 5?? ?4?? ?897?? ?2?? ?49.98?? ?24.99 6?? ?4?? ?365?? ?5?? ?299.95?? ?59.99 7?? ?4?? ?502?? ?3?? ?150?? ?50 8?? ?4?? ?1014?? ?4?? ?199.92?? ?49.98
題目
# 統(tǒng)計(jì)未支付的訂單數(shù)量 # 每個訂單的商品列表(包含哪些商品) # 每個訂單的總金額 # 找出消費(fèi)最多的客戶
代碼
package com.fuxi.zji
object sss {
def main(args: Array[String]): Unit = {
val data1 = scala.io.Source.fromFile("./src/data1/").getLines()
val data2 = scala.io.Source.fromFile("./src/data2").getLines()
data1.next()
data2.next()
val d1 = data1.map(lien => {
val fields = lien.split("\t")
(fields(0).toInt, fields(1), fields(2), fields(3))
}).toList
val d2 = data2.map(line => {
val fields = line.split("\t")
(fields(0).toInt, fields(1).toInt, fields(2).toInt, fields(3).toInt,
fields(4).toDouble, fields(5).toDouble)
}).toList
//未支付的訂單數(shù)量
val re1 = d1.filter(_._4 == "PENDING_PAYMENT").size
println(re1 + "個未支付")
//計(jì)算每個訂單對應(yīng)的商品id
val re = d1.groupBy(ro => ro._1).map(lien => (lien._1, d2.filter(lien._1 == _._2).map(_._3)))
re.foreach(li => {
println("訂單號:" + li._1 + "\t" + "商品的明細(xì):" + li._2.mkString(","))
})
//計(jì)算每個訂單的總金額
val rq = d1.map(lien => (lien._1, d2.filter(lien._1 == _._2).map(_._5)))
rq.foreach(li => {
println("訂單:" + li._1 + "\t" + "總金額:" + li._2.sum)
})
//找出消費(fèi)最多的客戶
val rw = d1.map(lien => (lien._3, d2.filter(lien._1 == _._2).map(_._5).sum)).sortWith(_._2 > _._2).head
println("消費(fèi)最多的客戶:" + rw._1 + "\t" + "總金額:" + rw._2)
}
}
柚子快報激活碼778899分享:Scala 商品訂單計(jì)算統(tǒng)計(jì)
相關(guān)鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。