मुझे लगता है कि मैंने एक ही मुद्दे से लड़ा था। जांचें कि क्या आपके पास चेतावनी है:
Constructing trivially true equals predicate [..]
जॉइन ऑपरेशन बनाने के बाद। यदि ऐसा है, तो कर्मचारी या नियोक्ता डेटाफ्रेम में कॉलम में से कोई एक उपनाम, उदा। इस तरह:
employee.select(<columns you want>, employee("id").as("id_e"))
फिर employee("id_e") === employer("id")
पर शामिल हों।
स्पष्टीकरण। इस आपरेशन के प्रवाह पर देखो:
आप सीधे DataFrame बी की गणना और स्तंभ क्रमांक, जो DataFrame एक से आता है पर उन्हें एक साथ शामिल होने के लिए अपने DataFrame एक का उपयोग करते हैं, तो आप प्रदर्शन नहीं किया जाएगा आप शामिल होना चाहते हैं। डेटाफ्रेम बी से आईडी कॉलम वास्तव में डेटाफ्रेमए से बिल्कुल वही कॉलम है, इसलिए स्पार्क केवल यह कहता है कि कॉलम स्वयं के बराबर है और इसलिए मामूली सच भविष्यवाणी है। इससे बचने के लिए, आपको कॉलम में से एक को उपनाम करना होगा ताकि वे स्पार्क के लिए "अलग" कॉलम के रूप में दिखाई दें। अभी के लिए केवल चेतावनी संदेश इस तरह से लागू किया गया है:
def === (other: Any): Column = {
val right = lit(other).expr
if (this.expr == right) {
logWarning(
s"Constructing trivially true equals predicate, '${this.expr} = $right'. " +
"Perhaps you need to use aliases.")
}
EqualTo(expr, right)
}
यह मेरे लिए एक बहुत अच्छा समाधान समाधान (यह चेतावनी संदेश को याद वास्तव में आसान है), मुझे आशा है कि यह किसी भी तरह ठीक किया जाएगा नहीं है।
चेतावनी संदेश देखने के लिए आप भाग्यशाली हैं, it has been added not so long ago;)।
SO NNamed में आपका स्वागत है। यदि आप मदद मांग रहे हैं तो आपको हमें मौका देना चाहिए :) शुरू करने के लिए अच्छी जगह [न्यूनतम, पूर्ण, और सत्यापन योग्य उदाहरण] प्रदान करना है (http://stackoverflow.com/help/mcve)। – zero323