我是Spark的新手,我在数据集上的连接方面有些挣扎。
我有两个数据集,想要合并它们:setA和setB,setB是已经加入的数据集的结果。
setA加入的Col是 fuhrparkNummer ,而setB加入的是 fuhrpark
keinBeladeendeDataset = setA
.join(setB, setA.col("fuhrparkNummer").equalTo(setB.col("fuhrpark")))
.select(
setA.col("ColA"),
setB.col("ColB")
);
使用setB.show()打印出setB;显示存在名为 fuhrpark 的列:
+------+------------------+--------+-------------------+----------+------+----+--------------+----------+
| colA |colB |fuhrpark|colD | .......|......|....|..............|..........|
+------+------------------+--------+-------------------+----------+------+----+--------------+----------+
|237543| null| 004| 1|2018-07-03| null|null| null| RC|
+------+------------------+--------+-------------------+----------+------+----+--------------+----------+
仍然,我收到fuhrpark未知的错误。
org.apache.spark.sql.AnalysisException: resolved attribute(s) fuhrpark#7 missing from fuhrpark#3767,liefDat#3769,tour#3771,datumTyp#2676,nveId#3764,verdichtetAufNveId#3766,kostenstelle#3289,nve#3146,lhmKuerzel#3773,planId#3770,beladen#3305,zielFuhrparkNr#3772,marktbelastungFahrerscan#3271,nveId#4,datum#2664,lager#3274,marktbelastungMarktScan#3273,transportStufeT2617#3768,fuhrparkNummer#3270,marktbelastungWkf#3272,typ#3145 in operator !Join Inner, (fuhrparkNummer#3270 = fuhrpark#7);;
!Join Inner, (fuhrparkNummer#3270 = fuhrpark#7)
:- Repartition 1, true
: +- Project [nveId#4, fuhrparkNummer#3270, datum#2664, datumTyp#2676, marktbelastungFahrerscan#3271, marktbelastungWkf#3272, marktbelastungMarktScan#3273, nve#3146, lager#3274, typ#3145, kostenstelle#3289, beladen#3305]
: +- Project [nveId#4, fuhrparkNummer#3270, datum#2664, datumTyp#2676, marktbelastungFahrerscan#3271, marktbelastungWkf#3272, marktbelastungMarktScan#3273, nve#3146, lager#3274, typ#3145, wwRegion#3169, wwBereich#3170, wwZaehlnummer#3171, kostenstelle#3289, false AS beladen#3305]
: +- Project [nveId#4, fuhrparkNummer#3270, datum#2664, datumTyp#2676, marktbelastungFahrerscan#3271, marktbelastungWkf#3272, marktbelastungMarktScan#3273, nve#3146, lager#3274, typ#3145, wwRegion#3169, wwBereich#3170, wwZaehlnummer#3171, concat(wwRegion#3169, , concat(wwBereich#3170, , wwZaehlnummer#3171)) AS kostenstelle#3289]
: +- Project [nveId#4, fuhrpark#426 AS fuhrparkNummer#3270, datum#2664, datumTyp#2676, nachbelastetFahrerscan#2283 AS marktbelastungFahrerscan#3271, nachbelastetWkf#2294 AS marktbelastungWkf#3272, nachbelastetMarktscan#2288 AS marktbelastungMarktScan#3273, nve#3146, lagerNr#3144 AS lager#3274, typ#3145, wwRegion#3169, wwBereich#3170, wwZaehlnummer#3171]
: +- Join Inner, (nveId#4 = nveId#3148)
: :- Filter (nichtBeladen#2047 = true)
: : +- Union
: : :- Aggregate [nveId#4, datum#2664, fuhrpark#426, verdichtet#1143, beladen#1626, nichtBeladen#2047, nachbelastetFahrerscan#2283, nachbelastetMarktscan#2288, nachbelastetWkf#2294, zuBelasten#2579, datumTyp#2676], [nveId#4, datum#2664, fuhrpark#426, verdichtet#1143, beladen#1626, nichtBeladen#2047, nachbelastetFahrerscan#2283, nachbelastetMarktscan#2288, nachbelastetWkf#2294, zuBelasten#2579, datumTyp#2676]
: : : +- Project [nveId#4, datum#2664, fuhrpark#426, verdichtet#1143, beladen#1626, nichtBeladen#2047, nachbelastetFahrerscan#2283, nachbelastetMarktscan#2288, nachbelastetWkf#2294, zuBelasten#2579, V AS datumTyp#2676]
: : : +- Project [nveId#4, vorgangDatum#22 AS datum#2664, fuhrpark#426, verdichtet#1143, beladen#1626, nichtBeladen#2047, nachbelastetFahrerscan#2283, nachbelastetMarktscan#2288, nachbelastetWkf#2294, zuBelasten#2579]
: : : +- Project [nveId#4, vorgangDatum#22, kommDatum#969, fuhrpark#426, verdichtet#1143, beladen#1626, nichtBeladen#2047, nachbelastetFahrerscan#2283, nachbelastetMarktscan#2288, nachbelastetWkf#2294, zuBelasten#2579]
: : : +- Join LeftOuter, (nveId#4 = nveId#2588)
: : : :- SubqueryAlias set1
: : : : +- Project [nveId#4, vorgangDatum#22, kommDatum#969, fuhrpark#426, verdichtet#1143, beladen#1626, nichtBeladen#2047, nachbelastetFahrerscan#2283, nachbelastetMarktscan#2288, nachbelastetWkf#2294]
: : : : +- Join LeftOuter, (fuhrpark#426 = fuhrpark#7)
: : : : :- SubqueryAlias set1
: : : : : +- Project [nveId#4, vorgangDatum#22, kommDatum#969, fuhrpark#426, verdichtet#1143, beladen#1626, nichtBeladen#2047]
: : : : : +- Join LeftOuter, (fuhrpark#426 = fuhrpark#7)
: : : : : :- SubqueryAlias set1
: : : : : : +- Project [nveId#4, vorgangDatum#22, kommDatum#969, fuhrpark#426, verdichtet#1143, beladen#1626]
: : : : : : +- Join LeftOuter, (fuhrpark#426 = fuhrpark#7)
: : : : : : :- SubqueryAlias set1
: : : : : : : +- Project [nveId#4, vorgangDatum#22, fuhrpark#426, kommDatum#969, verdichtet#1143]
: : : : : : : +- Join LeftOuter, (fuhrpark#426 = fuhrpark#7)
: : : : : : : :- SubqueryAlias set1
: : : : : : : : +- Project [nveId#4, vorgangDatum#22, fuhrpark#426, kommDatum#969]
: : : : : : : : +- Join LeftOuter, (fuhrpark#426 = fuhrpark#7)
: : : : : : : : :- SubqueryAlias set1
: : : : : : : : : +- Project [nveId#4, vorgangDatum#22, fuhrpark#426]
: : : : : : : : : +- Join Inner, (nveId#4 = nveId#423)
: : : : : : : : : :- SubqueryAlias set1
: : : : : : : : : : +- Aggregate [lagerNr#0, typ#1, nve#2, wwIdent#3, nveId#4, verdichtetAufNveId#6, vorgangDatum#22, kolieKz#23, kommLagerNr#24, wwRegion#25, wwBereich#26, wwZaehlnummer#27], [lagerNr#0, typ#1, nve#2, wwIdent#3, nveId#4, verdichtetAufNveId#6, vorgangDatum#22, kolieKz#23, kommLagerNr#24, wwRegion#25, wwBereich#26, wwZaehlnummer#27]
: : : : : : : : : : +- Project [lagerNr#0, typ#1, nve#2, wwIdent#3, nveId#4, verdichtetAufNveId#6, vorgangDatum#22, kolieKz#23, kommLagerNr#24, wwRegion#25, wwBereich#26, wwZaehlnummer#27]
: : : : : : : : : : +- Relation[lagerNr#0,typ#1,nve#2,wwIdent#3,nveId#4,verdichtetAuf#5,verdichtetAufNveId#6,fuhrpark#7,transportStufeT2617#8,liefDat#9,planId#10,tour#11,zielFuhrparkNr#12,lhmKuerzel#13,trackTs#14,rolle#15,nveStatusFail#16,nveStatus#17,memo#18,trackUser#19,trackFp#20,transportStufeT2618#21,vorgangDatum#22,kolieKz#23,... 4 more fields] csv
: : : : : : : : : +- Aggregate [nveId#423, fuhrpark#426], [nveId#423, fuhrpark#426]
: : : : : : : : : +- Project [nveId#423, fuhrpark#426]
: : : : : : : : : +- SubqueryAlias set2
: : : : : : : : : +- Aggregate [nveId#423, verdichtetAufNveId#425, fuhrpark#426, transportStufeT2617#427, liefDat#428, planId#429, tour#430, zielFuhrparkNr#431, lhmKuerzel#432], [nveId#423, verdichtetAufNveId#425, fuhrpark#426, transportStufeT2617#427, liefDat#428, planId#429, tour#430, zielFuhrparkNr#431, lhmKuerzel#432]
: : : : : : : : : +- Project [nveId#423, verdichtetAufNveId#425, fuhrpark#426, transportStufeT2617#427, liefDat#428, planId#429, tour#430, zielFuhrparkNr#431, lhmKuerzel#432]
: : : : : : : : : +- Relation[lagerNr#419,typ#420,nve#421,wwIdent#422,nveId#423,verdichtetAuf#424,verdichtetAufNveId#425,fuhrpark#426,transportStufeT2617#427,liefDat#428,planId#429,tour#430,zielFuhrparkNr#431,lhmKuerzel#432,trackTs#433,rolle#434,nveStatusFail#435,nveStatus#436,memo#437,trackUser#438,trackFp#439,transportStufeT2618#440,vorgangDatum#441,kolieKz#442,... 4 more fields] csv
:
有人可以告诉我我在做什么错吗,为什么以前在Error-Msg中有如此多的联接? Spark是否以某种方式将先前的联接存储在数据集对象中?
很高兴获得帮助。