、この方法は、ログのヒントの結果によるとプラットフォーム、OOMに複雑なクエリを実行します。
- SETのspark.driver.memory = 6 / 8G; OOM]が
設定spark.sql.autoBroadcastJoinThreshold = -1; [問題]
ビルドに十分なメモリがありませんし、すべてのワーカーノードにテーブルをブロードキャスト:スレッド「放送交換-0」java.lang.OutOfMemoryErrorをの例外。回避策として、あなたは-1 spark.sql.autoBroadcastJoinThresholdを設定することにより、どちらかを無効放送することができるか、高い値にspark.driver.memoryを設定することにより、スパーク・ドライバ・メモリを増やす org.apache.spark.sql.execution.exchange.BroadcastExchangeExecで$$ anonfun $ relationFuture $ 1 $$ anonfun $ $ 1.applyを適用します(BroadcastExchangeExec.scala:115) でorg.apache.spark.sql.execution.exchange.BroadcastExchangeExec $$ anonfun $ relationFuture $ 1 $$ anonfun $($ 1.applyを適用BroadcastExchangeExec.scala:73) org.apache.spark.sql.execution.SQLExecution $ .withExecutionIdで(SQLExecution.scala:97) org.apache.spark.sql.execution.exchange.BroadcastExchangeExec $$ anonfun $ relationFuture $ 1.apply(BroadcastExchangeExec.scala:72)で でorg.apache.spark.sql.execution.exchange.BroadcastExchangeExec $$ anonfun $ relationFuture $ 1.apply(BroadcastExchangeExec.scala:72) scala.concurrent.impl.Future $ PromiseCompletingRunnable.liftedTree1で$ -1(Future.scala:24) で、 scala.concurrent.impl.Future $ PromiseCompletingRunnable.run(Future.scala:24) java.lang.Thread.runで(Thread.java:748)
2019年11月20日午後1時45分38秒スケジューラは、ジョブ・インスタンスを受け取ります。T_6466665892523663_20191120134538_2を、タイムスケジュールキューに追加。 2019年11月20日午後1時45分38秒予定開始時刻::2019年11月19日0時10分: 00、スケジューリングを待っている... 2019年11月20日夜01時45分38秒の例の到着予定時間は、しかし、親が完了していない 2019年11月20日夜1時47分05秒インスタンスが完了している親、及び発送時、ディスパッチキューを追加します。 2019年11月20日午後01時47分05秒現在のジョブキュー0 ... 2019年11月20日には、午後01時47分05秒スケジューリングを待っている... 2019年11月20日午後01時47分05秒ジョブ・インスタンスにスケジュールを開始 2019年11月20日夜01時47分05秒第一ノード:10.94.0.15上糸のリソース情報を取得する。 2019年11月20日夜01時47分05秒糸:HTTP://10.94.0.16:8088 、10.94.0.10:8088は、キュー:残りのリソースのroot.hiveがある: "VCores:17、メモリ:22796M" 2019年11月20日夜01時47分05秒は、糸のリソースの終わりを得る、ノードの分散化を開始した。 2019 -11-20午後1時47分05秒第一予定のノード:10.94.0.15成功 無料MemorySizeとして現在では、タスクの実行にメモリ要件で満足し、最後64Mしきい値内グレーターで、7240メートルIS タスクプラグインを取得:SparkSqlプラグインの成功を。プラグイン情報: エンジン:SparkSql NodeManagersでクラスタから新しい新しいファイルアプリケーションの要求5:19/11/20午前13時47分08秒yarn.Client INFO エンジンはバージョンを適応:[] メーカー: 厂商版本: 初期化タスクを開始。 获取到リソース-プラグイン:sparkSql2.2.0-cdh5.12.0-1.0.0ジャー-で-dependencies.jar 19/11/20午後1時47分06秒INFO spark.SparkContext:実行スパークバージョン2.3.0.cloudera2 19/11/20夜一時47分06秒INFO spark.SparkContext:提出アプリケーション:dwd_mem_2b_applet_filter_task_detail_walker_T_6466665892523663_20191120134538_2_1 19/11/20夜1時47分07秒INFO server.Server:桟橋-9.3.z-SNAPSHOT 11分の19 / 20午後01時47分08秒INFO client.ConfiguredRMFailoverProxyProvider:rm177にフェイルオーバ 19/11/20夜01時47分08秒INFO yarn.Client:我々のアプリケーションの確認以上のクラスタ(コンテナあたり8192メガバイト)の最大メモリ容量よりも要求していない 夜01時47分09秒19/11/20 INFO impl.YarnClientImpl:提出アプリケーションapplication_1573451947838_0670 19/11/20 13時47分08秒INFO yarn.Client:オーバーヘッド384メガバイトを含む896メガバイトのメモリと、AMコンテナを割り当てます INFO yarn.Client 13時47分08秒19/11/20:私たちのために、コンテナの起動コンテキストの設定AM 19/11/20夜01時47分08秒INFO yarn.Client:私たちのAMコンテナの起動環境のセットアップ 19/11/20夜01時47分08秒INFO yarn.Client:私たちのAMコンテナのための準備リソース 11分の19 / 20午後1時47分09秒INFO yarn.Client:このResourceManagerにアプリケーションapplication_1573451947838_0670を送信 ApplicationMasterホスト:N / A ApplicationMaster RPCポート:-1 19/11/20夜01時47分10秒INFO yarn.Client:application_1573451947838_0670(ACCEPTED状態)のアプリケーションレポート :19/11/20夜01時47分10秒INFO yarn.Client クライアントトークン:N / Aの 診断:N / A キュー:root.hive 開始時刻:1574228829689 最終ステータス:UNDEFINED トラッキングURLます。http:// CDH-Hadoopの-16:8088 /プロキシ/ application_1573451947838_0670 / ユーザー:デプロイ 19/11/20夜1時47分11秒INFO yarn.Client: application_1573451947838_0670のアプリケーションレポート(状態:ACCEPTED) 19/11/20夜1時47分12秒INFO yarn.Client:application_1573451947838_0670のアプリケーションレポート(状態:ACCEPTED) 19/11/20夜1時47分13秒INFO yarn.Client:アプリケーションレポートapplication_1573451947838_0670のための(状態:RUNNING) 19/11/20夜01時47分13秒INFO yarn.Client: クライアントトークン:N / Aの 診断:N / A ApplicationMasterホスト:10.94.0.16 ApplicationMaster RPCポート:0 キュー:root.hive 19/11/20午後01時47分13秒INFO storage.BlockManager:初期化BlockManager:BlockManagerId(ドライバ、shuqiノード、36374、なし) 開始時刻:1574228829689の 最終ステータス:不定 トラッキングURL:のhttp:// CDH-Hadoopの-16:8088 /プロキシ/ application_1573451947838_0670 / ユーザー:デプロイ 19/11/20夜01時47分13秒INFO storage.BlockManager:ブロックの複製のためのorg.apache.spark.storage.RandomBlockReplicationPolicyを使用しますポリシー 19/11/20夜一時47分13秒INFO storage.BlockManager:外部シャッフルサービスポート= 7337 19/11/20夜01時47分14秒INFO scheduler.EventLoggingListener:HDFSへのロギングイベント:// hahdfs /ユーザー/火花/ spark2ApplicationHistory / application_1573451947838_0670 19/11/20夜01時47分14秒INFO spark.SparkContext:リスナーが登録さcom.cloudera.spark.lineage.NavigatorAppListener 19/11/20夜01時47分14秒INFO internal.SharedState:ロードハイブ設定ファイル:ファイル:/etc/hadoop/conf.cloudera.yarn/hive-site.xml 19/11/20午前13時47分14秒INFO internal.SharedState:spark.sql。 warehouse.dirが設定されていませんが、hive.metastore.warehouse.dirが設定されています。hive.metastore.warehouse.dir(「/ユーザ/ハイブ/倉庫」)の値にspark.sql.warehouse.dirを設定します。 19/11/20夜1時47分14秒INFO internal.SharedState:倉庫パスは'/ユーザー/ハイブ/倉庫'です。 19/11/20夜01時47分14秒INFO state.StateStoreCoordinatorRef:登録StateStoreCoordinatorは、エンドポイント URIの倹約とメタストアに接続しようとすると:// CDH-Hadoopの-16 19/11/20 INFO午後1時47分15秒のhive.metastoreを: 9083 19/11/20夜01時47分15秒INFOのhive.metastoreは:メタストアへの接続をオープンし、現在の接続:1 19/11/20夜1時47分15秒INFOのhive.metastore:メタストアに接続されています。 19/11/20夜1時47分15秒はcommand.SetCommandをWARN:「SETはhive.exec.dynamic.partition.mode =厳格での仕事ではないかもしれないが、スパークが動的ハイブ設定を変更することはできませんので、。スパークアプリケーションの起動時に(例えばspark.hadoop.hive.exec.dynamic.partition.mode)プレフィックスspark.hadoopを追加することにより、ハイブ固有の設定を渡してください。詳細については、リンクを参照してください。https://spark.apache.org/docs/latest/configuration.html#dynamically-loading-spark-propertiesを 开始执行: 上書きテーブルINSERT dwd_mem_2b_applet_filter_task_detail MEMBER_IDとしてt1.IDを選択し、 t2.LeaguerID leaguer_id、など member_employee_id、などt9.member_employee_id member_store_idとしてt2.ShopID、 member_avatarとしてt1.Avatar is_open_cardsとして他0端、 、MEMBER_NAMEとしてt1.RealName 、member_phoneとしてt1.Phone member_birthdayとしてt1.Birthday outbound_employee_idとしてt12.outbound_employee_id、 outbound_member_phoneとしてt12.outbound_member_phone、 outbound_timeとしてt12.outbound_time、 baby_idなどt4.baby_id baby_avatarとしてt4.baby_avatar、 baby_nameとしてt4.baby_name、 baby_genderとしてt4.baby_gender、 T4。 baby_ageとしてbaby_age baby_birthdayとしてt4.baby_birthday、 register_2_nowadaysとしてt1.register_2_nowadays、 register_channelとしてt10.register_channel、 ケースt3.first_card_open_date次いで1 NULLでない first_card_open_dateとしてt3.first_card_open_date card_coupon_days_leftとしてt11.card_coupon_days_left、 card_idとしてt2.LeaguerCode、 consume_frequency_dateCardなどt15.consume_frequency_dateCard consume_frequency_no_dateCardとしてt16.consume_frequency_no_dateCard card_expire_dateなどt5.card_expire_date total_rechargeとしてt6.total_recharge、 total_consume_coinとしてt7.total_consume_coin、 last_consume_dateとしてt8.last_consume_date、 last_consume_2_nowadaysとしてt8.last_consume_2_nowadays、 T5。 card_times_left card_times_left、など card_coin_leftとしてt2.card_coin_left、 card_days_leftとしてt5.card_days_left、 t6.last_recharge_2_nowadays last_recharge_2_nowadaysとして、 t2.card_coin_left / t13.card_coin_left left_coin_ratioとして、 t5.card_times_left / t14.card_times_left left_times_ratioなど から ( 選択ID、 アバター、 本名、 電話、 SUBSTR(TO_DATE(誕生日)、 -誕生日など5,5) 、 register_2_nowadaysとしてDATEDIFF(CURRENT_DATE、TO_DATE(CREATETIME)) -注册距今天数 ods_cuihua_dqmly_dy_sp_leaguerBaseから DSは= '20191119' )t1が 参加左 ( LeaguerIDとしてp1.IDを選択し、 -门店会员编码(系统自动生成ID) P1 .LeaguerBaseId、 -会员编码 p1.ShopID、 p3.LeaguerCode 、 -会员卡号 p2.card_coin_left -币剩余数量 からods_cuihua_dqmly_dy_sp_Leaguer P1が 参加左 ( LeaguerId_p2、AS SELECT IDを card_coin_leftとしてNVL(SUM(CoinBal1)+ SUM(GiveCoinBal1)+ SUM(GiveBCoinBal1)、0) -币剩余数量 からods_cuihua_dqmly_dy_sp_Leaguer DS = '20191119' IDによってグループ )P2 p1.ID = p2.LeaguerId_p2には 参加左 ( LeaguerId_p3としてLeaguerIdを選択 LeaguerCode ods_cuihua_dqmly_dy_sp_LeaguerCardから DS = '20191119' )P3 p1.ID = p3.LeaguerId_p3に ここp1.ds = '20191119' )T2 t1.ID = t2.LeaguerBaseIdには 参加左 ( LeaguerBaseId_t3としてp1.LeaguerBaseIdを選択 首次开卡时间- first_card_open_dateとして分(p2.CreateTime) ods_cuihua_dqmly_dy_sp_Leaguer P1から 参加左 ( LeaguerId、選択 LeaguerCode、 CREATETIMEを ods_cuihua_dqmly_dy_sp_LeaguerCardから DS = '20191119' 、P2) p1.ID = p2.LeaguerIdに p1.ds = '20191119' p1.LeaguerBaseIdによってグループ )T3 t1.ID = t3.LeaguerBaseId_t3には 参加左 ( 、baby_idとしてIDを選択 LeaguerBaseId_t4などLeaguerBaseId baby_avatarとしてアバター、 本名baby_nameなど baby_genderとしてセックス、 baby_ageとしてキャスト(DATEDIFF(CURRENT_DATE、TO_DATE(誕生日))/ 365)10,1(小数として) SUBSTR(TO_DATE(誕生)、 - 5,5)baby_birthdayとして ods_cuihua_dqmly_dy_sp_leaguerbabyから DS = '20191119' とIDがnullでない とLeaguerBaseIdがnullでない )T4 t1.ID = t4.LeaguerBaseId_t4には 参加左 ( LeaguerID_t5としてtc.LeaguerIDを選択し、 LeaguerCode_t5としてtc.LeaguerCode、 卡到期日期- card_expire_dateとしてte.card_expire_time、 次卡剩余次数- card_times_leftとしてNVL(tf.card_times_left、0) card_days_leftとしてNVL(DATEDIFF(TO_DATE(te.card_expire_time)、CURRENT_DATE)、0) -计时卡剩余天数 から ( LeaguerId、選択 LeaguerCode、 LeaguerCardIdとしてID ods_cuihua_dqmly_dy_sp_LeaguerCardから DS = '20191119' TC)が 参加左 ( LeaguerID_teとしてLeaguerIDを選択 LeaguerCardId_teとしてLeaguerCardId、 ReExpireTimeが終了時間ヌルである場合にケース 終了時間<= ReExpireTime次いでReExpireTimeの card_expire_timeとして端 ods_cuihua_dqmly_dy_sp_LeaguerTimeCardから DS = '20191119' とLeaguerCardIdがNULLではない )TE にtc.LeaguerId = te.LeaguerID_teとtc.LeaguerCardId = te.LeaguerCardId_te 内部結合が ( LeaguerID、選択 SUM(EnabledNumを)card_times_leftとして ods_cuihua_dqmly_dy_sp_LeaguerTimeCardから DS = '20191119' 及び(CURRENT_TIMESTAMP <終了時間またはCURRENT_TIMESTAMP <ReExpireTime) とEnabledNum> 0 LeaguerIDによって基 )TF te.LeaguerID_te = tf.LeaguerIDに )T5 t2.LeaguerID = t5.LeaguerID_t5とt2.LeaguerCode = t5.LeaguerCode_t5がオン に参加左 ( LeaguerID_t6としてLeaguerIDを選択 和(お金/ 100)total_rechargeとして、 -总充值金额 DATEDIFF(CURRENT_DATE、TO_DATE(MAX(CREATETIME))last_recharge_2_nowadaysなど) -最后充值时间距今天数 ods_cuihua_dqmly_dy_sp_setMealSellLog_deltaから LeaguerIDがnullでない LeaguerIDによってグループ )T6 にt2.LeaguerID = T6 .LeaguerID_t6が 参加し、左 ( LeaguerID_t7として選択p.LeaguerIDを、 NVL(SUM(P total_consume_coinとして.total_consume_coin)、0) から ( SELECT、LeaguerID など消費者通貨、為替の贈り物、自分で作成した通貨、為替票、寄付したお金は有効期限が切れ、送金、:コインの消費量の合計数- total_consume_coin AS SUM(coinnum)を ods_cuihua_dqmly_dy_sp_playLog_deltaから LeaguerIDによってグループ 連合のすべての SELECT LeaguerIDは、 (SUM total_consume_coin AS SurplusCoin1) ods_cuihua_dqmly_dy_sp_LeaguerGiveCoinLog_deltaから '真の' IsExpire =とSurplusCoin1> 0 - (IsExpireは:、期限が切れているSurplusCoin1:クレジットの数)が満了する ことにより、グループLeaguerIDを 連合のすべての SELECT LeaguerID、 total_consume_coin AS SUM(UsedValue) LeaguerIDによってグループ 連合のすべての ods_cuihua_dqmly_dy_sp_giftSellLog_deltaから UseValueType = 5場所- (UseValueType = 5 為替贈り物にUsedValueを表し:通貨を消費) total_consume_coin AS SUM(RealCoinNum) LeaguerID SELECT、 SUM(ABS(CoinNumber1))total_consume_coin AS ods_cuihua_dqmly_dy_sp_setMealSellLog_deltaから PayType 7 = - 。(。= PayTypeクレジットによって表されるが、パッケージを購入した7) グループLeaguerIDによって 連合のすべての SELECT FromLeaguer AS LeaguerID、 SUM(金額)total_consume_coin AS ods_cuihua_dqmly_dy_sp_valueTransferLog_deltaから- (FromLeaguer:転送元ユーザToLeaguer:転送先ユーザ) ValueTypeに= 1。 によってグループFromLeaguer ユニオンすべて SELECT LeaguerID、 ods_cuihua_dqmly_dy_sp_getCoinから- (RealCoinNum:クレジットの実際の数の間) WHERE DS = '20、191119' グループLeaguerIDによって )P p.LeaguerIDはWHERE NULLでない p.LeaguerIDによってグループ )T7 ON t2.LeaguerID = t7.LeaguerID_t7が 参加左 ( SELECT LeaguerID AS LeaguerID_t8、 最終消費日- last_consume_date、AS MAX(CREATETIMEを) DateDiff関数(CURRENT_DATE、TO_DATE(MAX( last_consume_2_nowadaysとしてCREATETIME))) -いくつかの消費者の今日からの最後:テイクコイン消費、タイムカード、消費時間、前回のブラッシング核クーポン ods_cuihua_dqmly_dy_sp_playLog_deltaから ヌルLeaguerIDされていない LeaguerIDによってグループ )T8 ON t2.LeaguerID T8 = .LeaguerID_t8が 参加左 から (の ( LeaguerBaseId_t9としてp1.invite_member_noを選択 member_employee_idとしてp2.employee_id 選択invite_code、 invite_member_no ods_mengguang_xc_crm_member_db1_member_invite_summaryから DS = '20191119' とinvite_codeがnullでない とinvite_member_noがnullでない )P1 内部ジョイン ( invite_code_p2として選択invite_codeを、 EMPLOYEE_ID ods_mengguang_xc_activity_manage_db_employee_invite_codeから ここで、DS = '20191119' )P2 p1.invite_code = p2.invite_code_p2上 )T9 t1.ID = t9.LeaguerBaseId_t9に 参加左 DATE_CREATED ( 、register_channelとして選択channel_infoを LeaguerBaseId_t10としてmember_no ods_mengguang_xc_crm_member_db1_member_profileから DS = '20191119' とmember_noがnullでない )T10 t1.ID = t10.LeaguerBaseId_t10には 参加左 ( 、LeaguerBaseId_t11としてp1.LeaguerBaseIdを選択し た場合p2.draw_limit_day <= 0次いで、DATEDIFF(TO_DATE(P2 .end_date)、CURRENT_DATE) 他DATEDIFF(DATE_ADD(TO_DATE(p1.date_created)、p2.draw_limit_day)、CURRENT_DATE)card_coupon_days_leftとして端 から ( 選択coupon_id、 LeaguerBaseIdとしてMEMBER_ID、 ods_qunshuo_amazingland_campaign_coupon_code_eventから ここで、DS = '20191119' とis_delete = 'NO' と( 'WAIT_RECEIVE'、 'WAIT_USE')でcoupon_status )P1 内参加 ( 選択coupon_number、 END_DATE、 draw_limit_day ods_qunshuo_amazingland_campaign_couponから ここで、DS = '20191119' とis_delete = 'NO' とcoupon_number <> '' )、P2 p1.coupon_id = p2.coupon_number上 )T11 t1.ID = t11.LeaguerBaseId_t11には 参加左 ( 、outbound_member_idとして選択tb1.custNumを-外呼会员编码、UUID outbound_employee_id、などtb1.staffNum -アウトバウンド従業員ID、スタッフIDを必ずしもメンバーは、他の従業員の発信があるかもしれない 、outbound_member_phoneとしてtb1.custPhone -メンバーは、電話番号発信 tb2.outbound_timeを TB1 ods_lixiang_immccdb_callout_infoから 参加インナー ( SELECT custNum AS custNum_tb2は、 -会員エンコードする 最後のアウトバウンド時間- outbound_timeとして)CREATETIME(最大 ods_lixiang_immccdb_callout_infoから DS = '20、191119' 挿入されたデータを介して通話した後、[成功、開くには、この制限の必要性-とcall_status = 0 ] custNumによるグループ )TB2 ON tb1.custNum = tb2.custNum_tb2 左参加 ( tb1.dsは= '20、191119'を )T12 t1.ID = t12.outbound_member_idに consume_frequency_dateCardとしてカウント数(TO_DATE(ta.createTimeを)) LeaguerID_t13としてLeaguerIDを選択 card_coin_left dwd_card_coin_left_last_rechargeから LeaguerID、card_coin_leftによってグループ )T13 t2.LeaguerID = t13.LeaguerID_t13には 参加左 ( LeaguerID_14としてLeaguerIDを選択 card_times_left dwd_card_times_left_last_rechargeから LeaguerID、card_times_leftによってグループ )T14 t2.LeaguerID = t14.LeaguerID_14に 左参加 ( LeaguerID_15としてSELECT ta.LeaguerID、 ods_cuihua_dqmly_dy_sp_playLog_delta AS TA FROM インナーods_cuihua_dqmly_dy_sp_timeCard ASのTB JOIN ta.TimeCardId = tb.IDオン tb.ds = '20191119' 保证是计时卡会员-及びtb.Category IN(2,3) とTO_DATE(ta.createtime)> = DATE_SUB(CURRENT_DATE、180) とTO_DATE(ta.createtime )<= CURRENT_DATEの ta.LeaguerIDによってグループ )T15 t2.LeaguerID = t15.LeaguerID_15には 参加左 ( LeaguerID_16としてSELECT ta.LeaguerID consume_frequency_no_dateCardとして)カウント(TO_DATE(ta.createTime) ods_cuihua_dqmly_dy_sp_playLog_delta AS TA FROM JOIN TB ods_cuihua_dqmly_dy_sp_timeCard AS INNERを ONしますta.TimeCardId = tb.ID どこtb.ds = '20191119' とtb.Category NOT IN(2,3) -保证是非计时卡会员 とTO_DATE(ta.createtime)> = DATE_SUB(CURRENT_DATE、180) そしてTO_DATE(ta.createtime)<= CURRENT_DATEの ta.LeaguerIDによってグループ )T16 t2.LeaguerID = t16.LeaguerID_16オン; 19/11/20夜01時47分17秒INFO hive.HiveMetastoreCatalog:表xcdqm_prd.ods_cuihua_dqmly_dy_sp_leaguerbase(推論モード:INFER_AND_SAVE)のための推論、大文字と小文字を区別しスキーマ 19/11/20夜01時47分17秒INFO scheduler.DAGScheduler:最終段階の親:リスト() 19/11/20夜01時47分17秒INFO scheduler.DAGScheduler:行方不明の両親:リスト() 19/11/20夜01時47分17秒INFO spark.SparkContext:DAGScheduler.scalaの放送から作成された放送0: 1039 19/11/20夜1時47分17秒INFO cluster.YarnScheduler:1つのタスクとタスクセット0.0を追加します 19/11/20 13時47分18秒INFO spark.ExecutorAllocationManager:タスクがバックログされているため、1つの新しいエグゼキュータの要求(新たな所望の合計は1になります) ビルドに十分なメモリがありませんし、すべてのワーカーノードにテーブルをブロードキャスト:スレッド「放送交換-0」java.lang.OutOfMemoryErrorをの例外。回避策として、あなたは-1 spark.sql.autoBroadcastJoinThresholdを設定することにより、どちらかを無効放送することができるか、高い値にspark.driver.memoryを設定することにより、スパーク・ドライバ・メモリを増やす org.apache.spark.sql.execution.exchange.BroadcastExchangeExecで:$$ anonfun $ relationFuture $ 1 $$ anonfun $ $ 1.apply(115 BroadcastExchangeExec.scala)を適用 org.apache.sparkで。 sql.execution.exchange.BroadcastExchangeExec $$ anonfun $ relationFuture $ 1.apply(BroadcastExchangeExec.scala:72) でorg.apache.spark.sql.execution.exchange.BroadcastExchangeExec $$ anonfun $ relationFuture $ 1 $$ anonfun $($ 1.applyを適用BroadcastExchangeExec.scala:73) :org.apache.spark.sql.execution.SQLExecution $ .withExecutionId(97 SQLExecution.scala)で org.apache.spark.sql.execution.exchange.BroadcastExchangeExec $$ anonfun $ relationFuture $ 1.applyで(BroadcastExchangeExec.scala:72 ) scala.concurrent.impl.Future $ PromiseCompletingRunnable.liftedTree1 $ -1(Future.scala時:24) 24):scala.concurrent.impl.Future $ PromiseCompletingRunnable.run(Future.scalaで java.lang.Thread.run(スレッドで.javaファイル:748)