spark兩種自定義排序方式
一、目標物件新增隱式轉換函式的方式實現自定義排序
object MySort{ //為student類新增隱式轉換函式 implicit val stuOrdering = new Ordering[student]{ override def compare(x: student, y: student) = { //自定義排序格式為:預設按年齡升序排序,當年齡相同時,按分數降序排序 if(x.age != y.age){ x.age - y.age }else{ y.score - x.score } } } } /** * 隱式轉換函式實現自定義排序 */ object CustomSort1{ def main(args: Array[String]): Unit = { //1.建立配置物件 val conf = new SparkConf().setAppName("sort1").setMaster("local[2]"); //2.建立叢集入口類物件 val sc = new SparkContext(conf); //3.並行化的方式生成rdd val rdd = sc.parallelize(Array(("tom",24,92),("ko",24,97),("mark",28,88),("jack",18,86))) //4.對資料進行排序 //引入隱式轉換函式 import MySort.stuOrdering val resRdd = rdd.sortBy(x => student(x._1,x._2.toInt,x._3.toInt)) //5.列印排序後的結果資料 println(resRdd.collect().toBuffer) } } //學生類 case class student(name:String,age:Int,score:Int)
二、目標物件實現Ordered特質的方式實現自定義排序
object CustomSort2{ def main(args: Array[String]): Unit = { //1.建立配置物件 val conf = new SparkConf().setAppName("sort2").setMaster("local[2]"); //2.建立叢集入口類物件 val sc = new SparkContext(conf); //3.並行化的方式生成rdd val rdd = sc.parallelize(Array(("tom",24,92),("ko",24,97),("mark",28,88),("jack",18,86))) //4.對資料進行排序 val resRdd = rdd.sortBy(x => student2(x._1,x._2.toInt,x._3.toInt)) //5.列印排序後的結果資料 println(resRdd.collect().toBuffer) } } case class student2(name:String,age:Int,score:Int) extends Ordered[student2]{ override def compare(that: student2): Int = { if(this.age != that.age){ this.age - that.age }else{ that.score - this.score } } }
相關推薦
spark兩種自定義排序方式
一、目標物件新增隱式轉換函式的方式實現自定義排序object MySort{ //為student類新增隱式轉換函式 implicit val stuOrdering = new Orderin
excel2013如何通過自定義排序方式來進行排序
資料 process html 技術 完整 通過 序列 解決辦法 需求 在實際中,我們肯定會有這麽一種需求,即按照自定義的順序來排序。解決辦法就是,我們自定義一個序列給Excel,然後讓Excel按照這個序列來進行排序。如圖 【解決方法,教程視頻資料如下】 本教程視頻資料來
spark中實現自定義排序
排序的方式可以分為6中: (1)使用一個自定義一個普通的類繼承Ordered[User] with Serializable import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext}
salesforce lightning零基礎學習(七) 列表展示資料時兩種自定義編輯頁面
上一篇Lightning內容描述的是LDS,通過LDS可以很方便的例項化一個物件的資料資訊。當我們通過列表展示資料需要編輯時,我們常使用兩種方式去處理編輯頁面:Pop Up Window彈出修改詳情以及在本頁面隱藏詳情頁面顯示編輯頁面。 實現這個功能以前主要需要先了解幾個標籤: lightning:reco
Oracle 自定義排序方式
-- Start 首先準備下面的測試資料。 CREATE TABLE price ( id NUMBER(10, 0), price_source VARCHAR(10), price NUMBER(30,
兩種自定義安全鍵盤&遮蔽系統輸入法
本文主要講兩種自定義安全的鍵盤的實現,還有遮蔽系統輸入法!(尤其是如果裝置上裝有谷歌中文輸入法,遮蔽谷歌輸入法【4.0版本以上】失效的情況) 目錄 第一種自定義鍵盤實現 自定義一個view繼承ViewGroup,ViewGroup裡面放鍵盤對
java 兩種方式實現自定義排序
package test; //Comparable 使物件本身具有可比性,這種方式稱為元素的自然順序或預設順序 //Comparator 元素自身不具備比較性或者比較性不是所需要的,在集合初始化讓其具有比較性 (更實用) import java.util.*; //cl
spark三種清理資料的方式:UDF,自定義函式,spark.sql;Python中的zip()與*zip()函式詳解//及python中的*args和**kwargs
(1)UDF的方式清理資料 import sys reload(sys) sys.setdefaultencoding('utf8') import re import json from pyspark.sql import SparkSession
spark自定義排序規則
package cn.edu360.day5 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /** * Created by zx on 2017/10/10. */ o
Spark-Core自定義排序規則
1.利用case特性,定義一個類,在類中進行排序 package day02 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object UserOrdered01 {
Spring的兩種事務定義方式
一、宣告式 這種方法不需要對原有的業務做任何修改,通過在XML檔案中定義需要攔截方法的匹配即可完成配置,要求是,業務處理中的方法的命名要有規律,比如setXxx,xxxUpdate等等。詳細配置如下: [html] view plain copy print?
spark 自定義排序詳解
目的: 排序輸出資料是資料處理的常見操作,本篇部落格示例解決元組、字串按照key、value進行單值、多值 自定義排序問題。 程式碼 package LoadTest import org.apache.log4j.{Logger, Level} impo
計算並設定ListView的高度,防止巢狀ScrollView監聽出現問題,(兩種方法,一種自定義,一種測量)
第一種自定義ListView public class MyListView extends ListView { public MyListView(Context context) { super(context);
兩種配置adpater的方式
and adapt source ada ray har spin cad layout 第一種:資源文件配置 ArrayAdapter<CharSequence> cadapt=ArrayAdapter.createFromResource(this, 資源i
跨平臺C++開源碼的兩種經常使用編譯方式
使用 文件夾 有一種 href dsm ever 源碼 .net log 作者:朱金燦來源:http://blog.csdn.net/clever101 跨平臺C++開源代碼為適應各種編譯器的編譯,採用了兩種方式方面來適配。一種是makefile方
兩種快速切圖方式
-h 動手 切片 文件 view 幫我 pack com upload 今天給大家分享一下我自己在前端工作中的一些切圖小技巧,雖然好的UI會給我們把圖切好,但是他們切的圖不一定百分之百符合我們的需求,所以還是自己動手豐衣足食嘛,看本教程之前希望大家能先看看慕課網的切圖教
java中實現Comparable接口實現自定義排序
static -1 return rabl generated args logs ava sca 1 class Student implements Comparable{ 2 String name; 3 int gpa; 4 @Ov
javascript中兩種基本常用排序算法分析
穩定 得到 直觀 height 算法 錯誤 繼續 改進冒泡 有序 備註:內容大部分從網上復制,代碼為自己手寫。僅做知識的溫故知新,並非原創。 1.冒泡排序(Bubble Sort) (1)算法描述 冒泡排序是一種簡單的排序算法。它重復地走訪過要排序的數列,一次比較兩個
織夢按權重排序和自定義排序
load ima row idt last 教程 syn 模板文件 而已 【按權重排序】 dede:list 的方法 1、找到"根目錄\include\arc.listview.class.php"文件。 2、修改代碼:在文件第727行處添加按weight排序判斷代碼(紅色
兩個自定義對象List列表取交集(intersection)
ray new obj pre lean body 自定義 blog rgs public static void main(String[] args) { List<Fpxx> list = ListUtils.intersecti