digraph G {
subgraph cluster0 {
isCluster="true";
label="WholeStageCodegen (3)\n \nduration: 0 ms";
1 [labelType="html" label="<b>HashAggregate</b><br><br>time in aggregation build: 0 ms<br>number of output rows: 1"];
}
2 [labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 1<br>shuffle write time: 0 ms<br>records read: 1<br>local bytes read: 59.0 B<br>fetch wait time: 0 ms<br>remote bytes read: 0.0 B<br>local blocks read: 1<br>remote blocks read: 0<br>data size: 16.0 B<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 59.0 B"];
subgraph cluster3 {
isCluster="true";
label="WholeStageCodegen (2)\n \nduration: 16 ms";
4 [labelType="html" label="<b>HashAggregate</b><br><br>time in aggregation build: 15 ms<br>number of output rows: 1"];
5 [labelType="html" label="<br><b>Project</b><br><br>"];
}
6 [labelType="html" label="<b>Generate</b><br><br>number of output rows: 6,840"];
subgraph cluster7 {
isCluster="true";
label="WholeStageCodegen (1)\n \nduration: 16 ms";
8 [labelType="html" label="<br><b>SerializeFromObject</b><br><br>"];
9 [labelType="html" label="<br><b>MapElements</b><br><br>"];
10 [labelType="html" label="<br><b>DeserializeToObject</b><br><br>"];
11 [labelType="html" label="<b>Scan JDBCRelation(( SELECT \r<br>\tDISTINCT t1.F0000080,\r<br>\tcase when t4.ye<>''\r<br>\tTHEN t4.ye\r<br>\tELSE DATE_FORMAT(NOW(),'%Y') end ye\r<br>\t,\r<br>\t'01-02-03-04-05-06-07-08-09-10-11-12' dataTime\r<br>\tfrom (SELECT F0000080 from `\u7ACB\u9879\u5BA1\u6279` WHERE `Status`='1' ) t1\r<br>\tLEFT JOIN `\u4E95\u4F4D\u4FE1\u606F` t2 on t2.ObjectId=t1.F0000080 and t2.`Status`='1'\r<br>\tLEFT JOIN `\u4E95\u4F4D\u8FD0\u884C\u60C5\u51B5\u8868` t3 on t2.ObjectId=t3.F0000026 and t3.`Status`='1'\r<br>\tLEFT JOIN(\t\r<br>\tSELECT DISTINCT F0000031,\r<br>\tCASE WHEN date_format(F0000030, '%d')>25 and date_format(F0000030, '%c')=12\r<br>\t\tTHEN date_format(F0000030, '%Y')+1\r<br>\t\tELSE date_format(F0000030, '%Y')\r<br>\t\tEND ye\r<br>\t FROM \t`\u65E5\u62A5\u586B\u62A5` \r<br>\t where Status='1' \r<br>\t )t4 on t4.F0000031=t3.ObjectId <br> ) as T) [numPartitions=1] </b><br><br>number of output rows: 570"];
}
2->1;
4->2;
5->4;
6->5;
8->6;
9->8;
10->9;
11->10;
}
12
HashAggregate(keys=[], functions=[count(1)])
WholeStageCodegen (3)
Exchange SinglePartition, ENSURE_REQUIREMENTS, [id=#1686]
HashAggregate(keys=[], functions=[partial_count(1)])
Project
WholeStageCodegen (2)
Generate stack(12, dataTime_0, dataTime_0#5000, dataTime_1, dataTime_1#5001, dataTime_2, dataTime_2#5002, dataTime_3, dataTime_3#5003, dataTime_4, dataTime_4#5004, dataTime_5, dataTime_5#5005, dataTime_6, dataTime_6#5006, dataTime_7, dataTime_7#5007, dataTime_8, dataTime_8#5008, dataTime_9, dataTime_9#5009, dataTime_10, dataTime_10#5010, dataTime_11, dataTime_11#5011), false, [monname#5048, mon#5049]
SerializeFromObject [if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, dataTime_0), StringType), true, false) AS dataTime_0#5000, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 4, dataTime_1), StringType), true, false) AS dataTime_1#5001, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, dataTime_2), StringType), true, false) AS dataTime_2#5002, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 6, dataTime_3), StringType), true, false) AS dataTime_3#5003, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 7, dataTime_4), StringType), true, false) AS dataTime_4#5004, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 8, dataTime_5), StringType), true, false) AS dataTime_5#5005, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 9, dataTime_6), StringType), true, false) AS dataTime_6#5006, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 10, dataTime_7), StringType), true, false) AS dataTime_7#5007, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 11, dataTime_8), StringType), true, false) AS dataTime_8#5008, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 12, dataTime_9), StringType), true, false) AS dataTime_9#5009, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 13, dataTime_10), StringType), true, false) AS dataTime_10#5010, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 14, dataTime_11), StringType), true, false) AS dataTime_11#5011]
MapElements smartbix.datamining.engine.execute.node.preprocess.DivideNode$2@1174cfe9, obj#4996: org.apache.spark.sql.Row
DeserializeToObject createexternalrow(F0000080#4877.toString, ye#4878.toString, dataTime#4879.toString, StructField(F0000080,StringType,true), StructField(ye,StringType,true), StructField(dataTime,StringType,true)), obj#4995: org.apache.spark.sql.Row
Scan JDBCRelation(( SELECT
DISTINCT t1.F0000080,
case when t4.ye<>''
THEN t4.ye
ELSE DATE_FORMAT(NOW(),'%Y') end ye
,
'01-02-03-04-05-06-07-08-09-10-11-12' dataTime
from (SELECT F0000080 from `立项审批` WHERE `Status`='1' ) t1
LEFT JOIN `井位信息` t2 on t2.ObjectId=t1.F0000080 and t2.`Status`='1'
LEFT JOIN `井位运行情况表` t3 on t2.ObjectId=t3.F0000026 and t3.`Status`='1'
LEFT JOIN(
SELECT DISTINCT F0000031,
CASE WHEN date_format(F0000030, '%d')>25 and date_format(F0000030, '%c')=12
THEN date_format(F0000030, '%Y')+1
ELSE date_format(F0000030, '%Y')
END ye
FROM `日报填报`
where Status='1'
)t4 on t4.F0000031=t3.ObjectId
) as T) [numPartitions=1] [F0000080#4877,ye#4878,dataTime#4879] PushedFilters: [], ReadSchema: struct<F0000080:string,ye:string,dataTime:string>
WholeStageCodegen (1)
== Physical Plan ==
* HashAggregate (9)
+- Exchange (8)
+- * HashAggregate (7)
+- * Project (6)
+- Generate (5)
+- * SerializeFromObject (4)
+- * MapElements (3)
+- * DeserializeToObject (2)
+- * Scan JDBCRelation(( SELECT
DISTINCT t1.F0000080,
case when t4.ye<>''
THEN t4.ye
ELSE DATE_FORMAT(NOW(),'%Y') end ye
,
'01-02-03-04-05-06-07-08-09-10-11-12' dataTime
from (SELECT F0000080 from `立项审批` WHERE `Status`='1' ) t1
LEFT JOIN `井位信息` t2 on t2.ObjectId=t1.F0000080 and t2.`Status`='1'
LEFT JOIN `井位运行情况表` t3 on t2.ObjectId=t3.F0000026 and t3.`Status`='1'
LEFT JOIN(
SELECT DISTINCT F0000031,
CASE WHEN date_format(F0000030, '%d')>25 and date_format(F0000030, '%c')=12
THEN date_format(F0000030, '%Y')+1
ELSE date_format(F0000030, '%Y')
END ye
FROM `日报填报`
where Status='1'
)t4 on t4.F0000031=t3.ObjectId
) as T) [numPartitions=1] (1)
(1) Scan JDBCRelation(( SELECT
DISTINCT t1.F0000080,
case when t4.ye<>''
THEN t4.ye
ELSE DATE_FORMAT(NOW(),'%Y') end ye
,
'01-02-03-04-05-06-07-08-09-10-11-12' dataTime
from (SELECT F0000080 from `立项审批` WHERE `Status`='1' ) t1
LEFT JOIN `井位信息` t2 on t2.ObjectId=t1.F0000080 and t2.`Status`='1'
LEFT JOIN `井位运行情况表` t3 on t2.ObjectId=t3.F0000026 and t3.`Status`='1'
LEFT JOIN(
SELECT DISTINCT F0000031,
CASE WHEN date_format(F0000030, '%d')>25 and date_format(F0000030, '%c')=12
THEN date_format(F0000030, '%Y')+1
ELSE date_format(F0000030, '%Y')
END ye
FROM `日报填报`
where Status='1'
)t4 on t4.F0000031=t3.ObjectId
) as T) [numPartitions=1] [codegen id : 1]
Output [3]: [F0000080#4877, ye#4878, dataTime#4879]
ReadSchema: struct<F0000080:string,ye:string,dataTime:string>
(2) DeserializeToObject [codegen id : 1]
Input [3]: [F0000080#4877, ye#4878, dataTime#4879]
Arguments: createexternalrow(F0000080#4877.toString, ye#4878.toString, dataTime#4879.toString, StructField(F0000080,StringType,true), StructField(ye,StringType,true), StructField(dataTime,StringType,true)), obj#4995: org.apache.spark.sql.Row
(3) MapElements [codegen id : 1]
Input [1]: [obj#4995]
Arguments: smartbix.datamining.engine.execute.node.preprocess.DivideNode$2@1174cfe9, obj#4996: org.apache.spark.sql.Row
(4) SerializeFromObject [codegen id : 1]
Input [1]: [obj#4996]
Arguments: [if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, dataTime_0), StringType), true, false) AS dataTime_0#5000, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 4, dataTime_1), StringType), true, false) AS dataTime_1#5001, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, dataTime_2), StringType), true, false) AS dataTime_2#5002, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 6, dataTime_3), StringType), true, false) AS dataTime_3#5003, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 7, dataTime_4), StringType), true, false) AS dataTime_4#5004, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 8, dataTime_5), StringType), true, false) AS dataTime_5#5005, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 9, dataTime_6), StringType), true, false) AS dataTime_6#5006, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 10, dataTime_7), StringType), true, false) AS dataTime_7#5007, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 11, dataTime_8), StringType), true, false) AS dataTime_8#5008, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 12, dataTime_9), StringType), true, false) AS dataTime_9#5009, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 13, dataTime_10), StringType), true, false) AS dataTime_10#5010, if (assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt) null else staticinvoke(class org.apache.spark.unsafe.types.UTF8String, StringType, fromString, validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 14, dataTime_11), StringType), true, false) AS dataTime_11#5011]
(5) Generate
Input [12]: [dataTime_0#5000, dataTime_1#5001, dataTime_2#5002, dataTime_3#5003, dataTime_4#5004, dataTime_5#5005, dataTime_6#5006, dataTime_7#5007, dataTime_8#5008, dataTime_9#5009, dataTime_10#5010, dataTime_11#5011]
Arguments: stack(12, dataTime_0, dataTime_0#5000, dataTime_1, dataTime_1#5001, dataTime_2, dataTime_2#5002, dataTime_3, dataTime_3#5003, dataTime_4, dataTime_4#5004, dataTime_5, dataTime_5#5005, dataTime_6, dataTime_6#5006, dataTime_7, dataTime_7#5007, dataTime_8, dataTime_8#5008, dataTime_9, dataTime_9#5009, dataTime_10, dataTime_10#5010, dataTime_11, dataTime_11#5011), false, [monname#5048, mon#5049]
(6) Project [codegen id : 2]
Output: []
Input [2]: [monname#5048, mon#5049]
(7) HashAggregate [codegen id : 2]
Input: []
Keys: []
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#5063L]
Results [1]: [count#5064L]
(8) Exchange
Input [1]: [count#5064L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [id=#1686]
(9) HashAggregate [codegen id : 3]
Input [1]: [count#5064L]
Keys: []
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#5060L]
Results [1]: [count(1)#5060L AS count#5061L]