In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-09-21 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Internet Technology >
Share
Shulou(Shulou.com)06/02 Report--
Prepare test data
Trade
Order number seller buyer city
1 A Xiao Wang Beijing 2 B Xiao Li Tianjin 3 A Xiao Liu Beijing
Order
Order number buyer's commodity name price delivery time
1 Xiao Wang TV 12 2015-08-01 09 purl 08RU 311 Xiao Wang refrigerator 24 2015-08-01 09RV 08Rd 142Xiao Li air conditioner 12 2015-09-02 09:01:31
Note: all are divided by\ t
Create DF def main (args: Array [String]): Unit = {val spark=SparkSession.builder () .appName ("JoinDemo") .master ("local [2]") .getOrCreate () import spark.implicits._ val order=spark.sparkContext.textFile ("order.data"). Map (_ .split ("\ t")) .map (x = > Order (x (0), x (1), x (2), x (3)) X (4)) .toDF () val trade=spark.sparkContext.textFile ("trade.data") .map (_ .split ("\ t")) .map (x = > Trade (x (0), x (1), x (2)) X (3)). ToDF () order.show () / / +-- + / | o_id | buyer | p_name | price | date | / / +-- + / / | 1 | Xiao Wang | TV | 12 | 2015-08-01 | / / | 1 | Xiao Wang | refrigerator | 24 | 2015-08-01 | / / | 2 | Xiao Li | Air conditioning | 12 | 2015-09-02 | / / +-+ trade.show () / / +-- +-+ / / | o_id | seller | buyer | buyer_city | / / +-- + / / | 1 | A | Xiao Wang | Beijing | / / | 2 | B | Xiao Li | Tianjin | / / | 3 | A | Xiao Liu | Beijing | / / + -+} case class Student (id:String Name:String,phoneNum:String,email:String) case class Order (obliquidPregnameGregory string gimmick) case class Trade (obliquidPregnameParticipate StringGetWord (date) string) case class Trade (obsolidPregnameParticipationStringparentin buyerGlyString.buyerGlyString.buyercase class Trade) string type defaults to `inner`.String. Must be one of the following types: `inner`, `cross`, `outer`, `full`, `full_ outer`, `left`, `left_ outer`, `right`, `right_ outer`, `left_ semi`, `left_ anti`.1, unspecified and inner
Do not specify
Trade.join (order Trade ("o_id") = = order ("o_id") .show+----+----+ | o_id | seller | buyer | buyer_city | buyer | p_name | price | date | + -- +-- + | 1 | A | Xiao Wang | Beijing | 1 | Xiao Wang | TV | 12 | 2015-08-01 | 1 | A | Xiao Wang | Beijing | 1 | Xiao Wang | 24 | 2015-08-01 | refrigerator | 2 | B | Xiao Li | Tianjin | 2 | Xiao Li | Air conditioning | 12 | 2015-09-02 | +-+
Specify inner
Scala > trade.join (order,trade ("o_id") = order ("o_id") "inner"). Show+----+----+ | o_id | seller | buyer | buyer_city | o_id | buyer | p_name | price | date | +- -- + | 1 | A | Xiao Wang | Beijing | 1 | Xiao Wang | TV | 12 | 2015-08-01 | | 1 | A | Xiao Wang | Beijing | 1 | Xiao Wang | refrigerator | 24 | 2015-08-01 | | 2 | B | Xiao Li | Tianjin | 2 | Xiao Li | Air conditioning | 12 | 2015-09-02 | + -+
Unspecified is the same as inner, which is to find the intersection of two Datarame.
2. Left and left outerscala > trade.join (order,trade ("o_id") = = order ("o_id") "left"). Show+----+----+ | o_id | seller | buyer | buyer_city | o_id | buyer | p_name | price | date | +- -- + | 3 | A | Xiao Liu | Beijing | null | 1 | A | Xiao Wang | Beijing | 1 | Xiao Wang | TV | 12 | 2015-08-01 | | 1 | A | Xiao Wang | Beijing | 1 | Xiao Wang | 24 | 2015-08-01 | | 2 | B | Xiao Li | Tianjin | 2 | Xiao Li | Air conditioning | 12 | 2015-09-02 | +-+ scala > trade.join (order) Trade ("o_id") = order ("o_id") "left_outer"). Show+----+----+ | o_id | seller | buyer | buyer_city | o_id | buyer | p_name | price | date | +- -+ | 3 | A | Xiao Liu | Beijing | null | 1 | A | Xiao Wang | Beijing | 1 | Xiao Wang | TV | 12 | 2015-08-01 | | 1 | A | Xiao Wang | Beijing | 1 | Xiao Wang | 24 | 2015-08-01 | | 2 | B | Xiao Li | | Tianjin | 2 | Xiao Li | Air conditioning | 12 | 2015-09-02 | +-+ |
Left join and left outer join are completely equivalent.
Right and right outerscala > trade.join (order,trade ("o_id") = = order ("o_id") "right_outer"). Show+----+----+ | o_id | seller | buyer | buyer_city | o_id | buyer | p_name | price | date | +- -+ | 1 | A | Xiao Wang | Beijing | 1 | Xiao Wang | TV | 12 | 2015-08-01 | | 1 | A | Xiao Wang | Beijing | 1 | Xiao Wang | refrigerator | 24 | 2015-08-01 | | 2 | B | Xiao Li | Tianjin | 2 | Xiao Li | Air conditioning | 12 | 2015-09 -02 | +-+ scala > trade.join (order Trade ("o_id") = order ("o_id") "right"). Show+----+----+ | o_id | seller | buyer | buyer_city | o_id | buyer | p_name | price | date | + +-+ | 1 | A | Xiao Wang | Beijing | 1 | Xiao Wang | TV | 12 | 2015-08-01 | | 1 | A | Xiao Wang | Beijing | 1 | Xiao Wang | refrigerator | 24 | 2015-08-01 | | 2 | B | Xiao Li | Tianjin | 2 | Xiao Li | Air conditioning | 12 | 2015-09-02 | + -+
Right and right outer are equivalent
Full_outerscala > trade.join (order,trade ("o_id") = order ("o_id") "full_outer"). Show+----+----+ | o_id | seller | buyer | buyer_city | o_id | buyer | p_name | price | date | +- -+ | 3 | A | Xiao Liu | Beijing | null | 1 | A | Xiao Wang | Beijing | 1 | Xiao Wang | TV | 12 | 2015-08-01 | | 1 | A | Xiao Wang | Beijing | 1 | Xiao Wang | 24 | 2015-08-01 | | 2 | B | Xiao Li | | Tianjin | 2 | Xiao Li | Air conditioning | 12 | 2015-09-02 | +-+ |
Get the intersection of two Datarame
Left_semiscala > trade.join (order,trade ("o_id") = order ("o_id") "left_semi") .show+----+ | o_id | seller | buyer | buyer_city | +-- + | 1 | A | Xiao Wang | Beijing | | 2 | B | Xiao Li | Tianjin | +-+
Filter out the common parts of the two DF
Left_anticala > trade.join (order,trade ("o_id") = order ("o_id") "left_anti") .show+----+ | o_id | seller | buyer | buyer_city | +-+ | 3 | A | Xiao Liu | Beijing | +-+
Filter out the parts of DF2 that DF1 does not have
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
The market share of Chrome browser on the desktop has exceeded 70%, and users are complaining about
The world's first 2nm mobile chip: Samsung Exynos 2600 is ready for mass production.According to a r
A US federal judge has ruled that Google can keep its Chrome browser, but it will be prohibited from
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
About us Contact us Product review car news thenatureplanet
More Form oMedia: AutoTimes. Bestcoffee. SL News. Jarebook. Coffee Hunters. Sundaily. Modezone. NNB. Coffee. Game News. FrontStreet. GGAMEN
© 2024 shulou.com SLNews company. All rights reserved.