[hadoop@hadoop000 bin]$ ./spark-shell --master local[2] --jars ~/software/mysql-connector-java-5.1.27.jar
scala> case class Student (id:String, name:String, phone:String, email:String)
scala> val students = sc.textFile("file:///home/hadoop/data/student.data").map(_.split("\\|")).map(x=>(Student(x(0),x(1),x(2),x(3)))).toDF()
students: org.apache.spark.sql.DataFrame = [id: string, name: string ... 2 more fields]
//1.顯示表中數(shù)據(jù)饶套,超過20個(gè)字符的會(huì)部分省略
scala> students.show
+---+--------+--------------+--------------------+
| id| name| phone| email|
+---+--------+--------------+--------------------+
| 1| Burke|1-300-746-8446|ullamcorper.velit...|
| 2| Kamal|1-668-571-5046|pede.Suspendisse@...|
| 3| Olga|1-956-311-1686|Aenean.eget,netus...|
| 4| Belle|1-246-894-6340|vitae.aliquet.nec...|
| 5| Trevor|1-300-527-4967|dapibus.id@acturp...|
| 6| Laurel|1-691-379-9921|adipiscing@consec...|
| 7| Sara|1-608-140-1995|Donec.nibh@enimEt...|
| 8| Kaseem|1-881-586-2689|cursus.et.magna@e...|
| 9| Lev|1-916-367-5608|Vivamus.nisi@ipsu...|
| 10| Maya|1-271-683-2698|accumsan.convalli...|
| 11| Emi|1-467-270-1337| est@nunc.com|
| 12| Caleb|1-683-212-0896|Suspendisse@Quisq...|
| 13|Florence|1-603-575-2444|sit.amet.dapibus@...|
| 14| Anika|1-856-828-7883|euismod@ligulaeli...|
| 15| Tarik|1-398-171-2268|turpis@felisorci.com|
| 16| Amena|1-878-250-3129|lorem.lucrus.ut@s...|
| 17| Blossom|1-154-406-9596|Nunc.commodo.auct...|
| 18| Guy|1-869-521-3230|senectus.et.netus...|
| 19| Malachi|1-608-637-2772|Proin.mi.Aliquam@...|
| 20| Edward|1-711-710-6552|lectus@aliquetlib...|
+---+--------+--------------+--------------------+
only showing top 20 rows
//2.完整顯示表中所有數(shù)據(jù)
scala> students.show(false)
+---+--------+--------------+-----------------------------------------+
|id |name |phone |email |
+---+--------+--------------+-----------------------------------------+
|1 |Burke |1-300-746-8446|ullamcorper.velit.in@ametnullaDonec.co.uk|
|2 |Kamal |1-668-571-5046|pede.Suspendisse@interdumenim.edu |
|3 |Olga |1-956-311-1686|Aenean.eget,netus@dictumcursusNunc.edu |
|4 |Belle |1-246-894-6340|vitae.aliquet.nec@neque.co.uk |
|5 |Trevor |1-300-527-4967|dapibus.id@acturpisegestas.net |
|6 |Laurel |1-691-379-9921|adipiscing@consectetueripsum.edu |
|7 |Sara |1-608-140-1995|Donec.nibh@enimEtianimperdiet.edu |
|8 |Kaseem |1-881-586-2689|cursus.et.magna@euismod.org |
|9 |Lev |1-916-367-5608|Vivamus.nisi@ipsumdolor.com |
|10 |Maya |1-271-683-2698|accumsan.convallis@ornarelectusjusto.edu |
|11 |Emi |1-467-270-1337|est@nunc.com |
|12 |Caleb |1-683-212-0896|Suspendisse@Quisque.edu |
|13 |Florence|1-603-575-2444|sit.amet.dapibus@lacusAliquamrutrum.ca |
|14 |Anika |1-856-828-7883|euismod@ligulaelit.co.uk |
|15 |Tarik |1-398-171-2268|turpis@felisorci.com |
|16 |Amena |1-878-250-3129|lorem.lucrus.ut@scelerisque.com |
|17 |Blossom |1-154-406-9596|Nunc.commodo.auctor@eratSed.co.uk |
|18 |Guy |1-869-521-3230|senectus.et.netus@lectusrutrum.com |
|19 |Malachi |1-608-637-2772|Proin.mi.Aliquam@estarcu.net |
|20 |Edward |1-711-710-6552|lectus@aliquetlibero.co.uk |
+---+--------+--------------+-----------------------------------------+
only showing top 20 rows
//3.顯示前5條數(shù)據(jù)
scala> students.show(5,false)
+---+------+--------------+-----------------------------------------+
|id |name |phone |email |
+---+------+--------------+-----------------------------------------+
|1 |Burke |1-300-746-8446|ullamcorper.velit.in@ametnullaDonec.co.uk|
|2 |Kamal |1-668-571-5046|pede.Suspendisse@interdumenim.edu |
|3 |Olga |1-956-311-1686|Aenean.eget,netus@dictumcursusNunc.edu |
|4 |Belle |1-246-894-6340|vitae.aliquet.nec@neque.co.uk |
|5 |Trevor|1-300-527-4967|dapibus.id@acturpisegestas.net |
+---+------+--------------+-----------------------------------------+
only showing top 5 rows
//4.顯示第一條數(shù)據(jù)
scala> students.head
res9: org.apache.spark.sql.Row = [1,Burke,1-300-746-8446,ullamcorper.velit.in@ametnullaDonec.co.uk]
//5.顯示前5條數(shù)據(jù)
scala> students.head(5)
res10: Array[org.apache.spark.sql.Row] = Array([1,Burke,1-300-746-8446,ullamcorper.velit.in@ametnullaDonec.co.uk], [2,Kamal,1-668-571-5046,pede.Suspendisse@interdumenim.edu], [3,Olga,1-956-311-1686,Aenean.eget,netus@dictumcursusNunc.edu], [4,Belle,1-246-894-6340,vitae.aliquet.nec@neque.co.uk], [5,Trevor,1-300-527-4967,dapibus.id@acturpisegestas.net])
//6.顯示前5條數(shù)據(jù)
scala> students.head(5).foreach(println)
[1,Burke,1-300-746-8446,ullamcorper.velit.in@ametnullaDonec.co.uk]
[2,Kamal,1-668-571-5046,pede.Suspendisse@interdumenim.edu]
[3,Olga,1-956-311-1686,Aenean.eget,netus@dictumcursusNunc.edu]
[4,Belle,1-246-894-6340,vitae.aliquet.nec@neque.co.uk]
[5,Trevor,1-300-527-4967,dapibus.id@acturpisegestas.net]
//7.顯示第一條數(shù)據(jù)
scala> students.first
res12: org.apache.spark.sql.Row = [1,Burke,1-300-746-8446,ullamcorper.velit.in@ametnullaDonec.co.uk]
//8.顯示“id”和“name”列
scala> students.select("id","name").show
+---+--------+
| id| name|
+---+--------+
| 1| Burke|
| 2| Kamal|
| 3| Olga|
| 4| Belle|
| 5| Trevor|
| 6| Laurel|
| 7| Sara|
| 8| Kaseem|
| 9| Lev|
| 10| Maya|
| 11| Emi|
| 12| Caleb|
| 13|Florence|
| 14| Anika|
| 15| Tarik|
| 16| Amena|
| 17| Blossom|
| 18| Guy|
| 19| Malachi|
| 20| Edward|
+---+--------+
only showing top 20 rows
//9.篩選id<5的數(shù)據(jù)
scala> students.filter("id<5").show
+---+-----+--------------+--------------------+
| id| name| phone| email|
+---+-----+--------------+--------------------+
| 1|Burke|1-300-746-8446|ullamcorper.velit...|
| 2|Kamal|1-668-571-5046|pede.Suspendisse@...|
| 3| Olga|1-956-311-1686|Aenean.eget,netus...|
| 4|Belle|1-246-894-6340|vitae.aliquet.nec...|
+---+-----+--------------+--------------------+
//10.篩選name為空的數(shù)據(jù)
scala> students.filter("name=''").show
+---+----+--------------+--------------------+
| id|name| phone| email|
+---+----+--------------+--------------------+
| 21| |1-711-710-6552|lecrus@aliquetlib...|
| 22| |1-711-710-6552|lecrus@aliquetlib...|
+---+----+--------------+--------------------+
//11.篩選name為空或者NULL的數(shù)據(jù)
scala> students.filter("name=''or name='NULL'").show
+---+----+--------------+--------------------+
| id|name| phone| email|
+---+----+--------------+--------------------+
| 21| |1-711-710-6552|lecrus@aliquetlib...|
| 22| |1-711-710-6552|lecrus@aliquetlib...|
| 23|NULL|1-711-710-6552|lecrus@aliquetlib...|
+---+----+--------------+--------------------+
//12.篩選出name第一個(gè)字母為“M”的數(shù)據(jù)
scala> students.filter("name like 'M%'").show
+---+-------+--------------+--------------------+
| id| name| phone| email|
+---+-------+--------------+--------------------+
| 10| Maya|1-271-683-2698|accumsan.convalli...|
| 19|Malachi|1-608-637-2772|Proin.mi.Aliquam@...|
+---+-------+--------------+--------------------+
//13.篩選出name第一個(gè)字母為“M”的數(shù)據(jù)
scala> students.filter("substr(name,0,1)='M'").show
+---+-------+--------------+--------------------+
| id| name| phone| email|
+---+-------+--------------+--------------------+
| 10| Maya|1-271-683-2698|accumsan.convalli...|
| 19|Malachi|1-608-637-2772|Proin.mi.Aliquam@...|
+---+-------+--------------+--------------------+
//14.篩選出name前三個(gè)字母為“Mal”的數(shù)據(jù)
scala> students.filter("substr(name,0,3)='Mal'").show
+---+-------+--------------+--------------------+
| id| name| phone| email|
+---+-------+--------------+--------------------+
| 19|Malachi|1-608-637-2772|Proin.mi.Aliquam@...|
+---+-------+--------------+--------------------+
//15.按name排序瓦阐,默認(rèn)是升序
scala> students.sort($"name").show
+---+--------+--------------+--------------------+
| id| name| phone| email|
+---+--------+--------------+--------------------+
| 21| |1-711-710-6552|lecrus@aliquetlib...|
| 22| |1-711-710-6552|lecrus@aliquetlib...|
| 16| Amena|1-878-250-3129|lorem.lucrus.ut@s...|
| 14| Anika|1-856-828-7883|euismod@ligulaeli...|
| 4| Belle|1-246-894-6340|vitae.aliquet.nec...|
| 17| Blossom|1-154-406-9596|Nunc.commodo.auct...|
| 1| Burke|1-300-746-8446|ullamcorper.velit...|
| 12| Caleb|1-683-212-0896|Suspendisse@Quisq...|
| 20| Edward|1-711-710-6552|lectus@aliquetlib...|
| 11| Emi|1-467-270-1337| est@nunc.com|
| 13|Florence|1-603-575-2444|sit.amet.dapibus@...|
| 18| Guy|1-869-521-3230|senectus.et.netus...|
| 2| Kamal|1-668-571-5046|pede.Suspendisse@...|
| 8| Kaseem|1-881-586-2689|cursus.et.magna@e...|
| 6| Laurel|1-691-379-9921|adipiscing@consec...|
| 9| Lev|1-916-367-5608|Vivamus.nisi@ipsu...|
| 19| Malachi|1-608-637-2772|Proin.mi.Aliquam@...|
| 10| Maya|1-271-683-2698|accumsan.convalli...|
| 23| NULL|1-711-710-6552|lecrus@aliquetlib...|
| 3| Olga|1-956-311-1686|Aenean.eget,netus...|
+---+--------+--------------+--------------------+
only showing top 20 rows
//16.按name降序排列
scala> students.sort($"name".desc).show(23,false)
+---+--------+--------------+-----------------------------------------+
|id |name |phone |email |
+---+--------+--------------+-----------------------------------------+
|5 |Trevor |1-300-527-4967|dapibus.id@acturpisegestas.net |
|15 |Tarik |1-398-171-2268|turpis@felisorci.com |
|7 |Sara |1-608-140-1995|Donec.nibh@enimEtianimperdiet.edu |
|3 |Olga |1-956-311-1686|Aenean.eget,netus@dictumcursusNunc.edu |
|23 |NULL |1-711-710-6552|lecrus@aliquetlibero.co.uk |
|10 |Maya |1-271-683-2698|accumsan.convallis@ornarelectusjusto.edu |
|19 |Malachi |1-608-637-2772|Proin.mi.Aliquam@estarcu.net |
|9 |Lev |1-916-367-5608|Vivamus.nisi@ipsumdolor.com |
|6 |Laurel |1-691-379-9921|adipiscing@consectetueripsum.edu |
|8 |Kaseem |1-881-586-2689|cursus.et.magna@euismod.org |
|2 |Kamal |1-668-571-5046|pede.Suspendisse@interdumenim.edu |
|18 |Guy |1-869-521-3230|senectus.et.netus@lectusrutrum.com |
|13 |Florence|1-603-575-2444|sit.amet.dapibus@lacusAliquamrutrum.ca |
|11 |Emi |1-467-270-1337|est@nunc.com |
|20 |Edward |1-711-710-6552|lectus@aliquetlibero.co.uk |
|12 |Caleb |1-683-212-0896|Suspendisse@Quisque.edu |
|1 |Burke |1-300-746-8446|ullamcorper.velit.in@ametnullaDonec.co.uk|
|17 |Blossom |1-154-406-9596|Nunc.commodo.auctor@eratSed.co.uk |
|4 |Belle |1-246-894-6340|vitae.aliquet.nec@neque.co.uk |
|14 |Anika |1-856-828-7883|euismod@ligulaelit.co.uk |
|16 |Amena |1-878-250-3129|lorem.lucrus.ut@scelerisque.com |
|21 | |1-711-710-6552|lecrus@aliquetlibero.co.uk |
|22 | |1-711-710-6552|lecrus@aliquetlibero.co.uk |
+---+--------+--------------+-----------------------------------------+
//17.按name降序排列,name相同的情況下按id降序排列
scala> students.sort($"name".desc,$"id".desc).show(23,false)
+---+--------+--------------+-----------------------------------------+
|id |name |phone |email |
+---+--------+--------------+-----------------------------------------+
|5 |Trevor |1-300-527-4967|dapibus.id@acturpisegestas.net |
|15 |Tarik |1-398-171-2268|turpis@felisorci.com |
|7 |Sara |1-608-140-1995|Donec.nibh@enimEtianimperdiet.edu |
|3 |Olga |1-956-311-1686|Aenean.eget,netus@dictumcursusNunc.edu |
|23 |NULL |1-711-710-6552|lecrus@aliquetlibero.co.uk |
|10 |Maya |1-271-683-2698|accumsan.convallis@ornarelectusjusto.edu |
|19 |Malachi |1-608-637-2772|Proin.mi.Aliquam@estarcu.net |
|9 |Lev |1-916-367-5608|Vivamus.nisi@ipsumdolor.com |
|6 |Laurel |1-691-379-9921|adipiscing@consectetueripsum.edu |
|8 |Kaseem |1-881-586-2689|cursus.et.magna@euismod.org |
|2 |Kamal |1-668-571-5046|pede.Suspendisse@interdumenim.edu |
|18 |Guy |1-869-521-3230|senectus.et.netus@lectusrutrum.com |
|13 |Florence|1-603-575-2444|sit.amet.dapibus@lacusAliquamrutrum.ca |
|11 |Emi |1-467-270-1337|est@nunc.com |
|20 |Edward |1-711-710-6552|lectus@aliquetlibero.co.uk |
|12 |Caleb |1-683-212-0896|Suspendisse@Quisque.edu |
|1 |Burke |1-300-746-8446|ullamcorper.velit.in@ametnullaDonec.co.uk|
|17 |Blossom |1-154-406-9596|Nunc.commodo.auctor@eratSed.co.uk |
|4 |Belle |1-246-894-6340|vitae.aliquet.nec@neque.co.uk |
|14 |Anika |1-856-828-7883|euismod@ligulaelit.co.uk |
|16 |Amena |1-878-250-3129|lorem.lucrus.ut@scelerisque.com |
|22 | |1-711-710-6552|lecrus@aliquetlibero.co.uk |
|21 | |1-711-710-6552|lecrus@aliquetlibero.co.uk |
+---+--------+--------------+-----------------------------------------+
//18.臨時(shí)修改列名
scala> students.select($"name".as("new_name")).show(5,false)
+--------+
|new_name|
+--------+
|Burke |
|Kamal |
|Olga |
|Belle |
|Trevor |
+--------+
only showing top 5 rows
//19.join的用法
scala> val students1 = spark.sparkContext.textFile("file:///home/hadoop/data/student.data").map(_.split("\\|")).map(x =>(Student(x(0),x(1),x(2),x(3)))).toDF()
students1: org.apache.spark.sql.DataFrame = [id: string, name: string ... 2 more fields]
scala> val students2 = spark.sparkContext.textFile("file:///home/hadoop/data/student1.data").map(_.split("\\|")).map(x =>(Student(x(0),x(1),x(2),x(3)))).toDF()
students2: org.apache.spark.sql.DataFrame = [id: string, name: string ... 2 more fields]
//如果不輸入join的第三個(gè)參數(shù)"inner",也默認(rèn)為innerjoin
scala> students1.join(students2,students1.col("id")===students2.col("id"),"inner").show()
+---+--------+--------------+--------------------+---+--------+--------------+--------------------+
| id| name| phone| email| id| name| phone| email|
+---+--------+--------------+--------------------+---+--------+--------------+--------------------+
| 15| Tarik|1-398-171-2268|turpis@felisorci.com| 15| Tarik|1-398-171-2268|turpis@felisorci.com|
| 22| |1-711-710-6552|lecrus@aliquetlib...| 22| |1-711-710-6552|lecrus@aliquetlib...|
| 16| Amena|1-878-250-3129|lorem.lucrus.ut@s...| 16| Amena|1-878-250-3129|lorem.lucrus.ut@s...|
| 18| Guy|1-869-521-3230|senectus.et.netus...| 18| Guy|1-869-521-3230|senectus.et.netus...|
| 17| Blossom|1-154-406-9596|Nunc.commodo.auct...| 17| Blossom|1-154-406-9596|Nunc.commodo.auct...|
| 19| Malachi|1-608-637-2772|Proin.mi.Aliquam@...| 19| Malachi|1-608-637-2772|Proin.mi.Aliquam@...|
| 23| NULL|1-711-710-6552|lecrus@aliquetlib...| 23| NULL|1-711-710-6552|lecrus@aliquetlib...|
| 20| Edward|1-711-710-6552|lectus@aliquetlib...| 20| Edward|1-711-710-6552|lectus@aliquetlib...|
| 12| Caleb|1-683-212-0896|Suspendisse@Quisq...| 12| Caleb|1-683-212-0896|Suspendisse@Quisq...|
| 13|Florence|1-603-575-2444|sit.amet.dapibus@...| 13|Florence|1-603-575-2444|sit.amet.dapibus@...|
| 14| Anika|1-856-828-7883|euismod@ligulaeli...| 14| Anika|1-856-828-7883|euismod@ligulaeli...|
| 21| |1-711-710-6552|lecrus@aliquetlib...| 21| |1-711-710-6552|lecrus@aliquetlib...|
+---+--------+--------------+--------------------+---+--------+--------------+--------------------+
(四)DataFrame的常用函數(shù)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門玫恳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辨赐,“玉大人,你說我怎么就攤上這事京办∠菩颍” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵臂港,是天一觀的道長森枪。 經(jīng)常有香客問我视搏,道長审孽,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任浑娜,我火速辦了婚禮佑力,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘筋遭。我一直安慰自己打颤,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布漓滔。 她就那樣靜靜地躺著编饺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪响驴。 梳的紋絲不亂的頭發(fā)上透且,一...
- 文/蒼蘭香墨 我猛地睜開眼楣号,長吁一口氣:“原來是場噩夢啊……” “哼最易!你這毒婦竟也來了怒坯?” 一聲冷哼從身側(cè)響起,我...
- 序言:老撾萬榮一對情侶失蹤藻懒,失蹤者是張志新(化名)和其女友劉穎敬肚,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體束析,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡艳馒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了员寇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弄慰。...
- 正文 年R本政府宣布慌闭,位于F島的核電站,受9級特大地震影響躯舔,放射性物質(zhì)發(fā)生泄漏驴剔。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一粥庄、第九天 我趴在偏房一處隱蔽的房頂上張望丧失。 院中可真熱鬧,春花似錦惜互、人聲如沸布讹。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽描验。三九已至,卻和暖如春坑鱼,著一層夾襖步出監(jiān)牢的瞬間膘流,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓黍析,卻偏偏與公主長得像卖怜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子阐枣,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 1、三角函數(shù) double sin (double);正弦 double cos (double);余弦 doub...
- 當(dāng)計(jì)算多個(gè)數(shù)的公約數(shù)時(shí)甩鳄,需要知道逞度,前兩個(gè)的最大公約數(shù),依次和后面的數(shù)求公約數(shù)妙啃,得到的就是所有數(shù)字的最大公約數(shù)档泽。
- “Know well yourself燥滑,to understand better society渐北!”這句話是我第一...