{"id":184,"date":"2023-05-22T14:38:01","date_gmt":"2023-05-22T06:38:01","guid":{"rendered":"https:\/\/xinchewhd.com.cn\/?p=184"},"modified":"2023-05-22T14:39:58","modified_gmt":"2023-05-22T06:39:58","slug":"a3975794d6","status":"publish","type":"post","link":"https:\/\/xinchewhd.com.cn\/index.php\/java\/a3975794d6\/","title":{"rendered":"\u4f1astream\u6d41\u5c31\u4f1a\u5927\u6570\u636e\uff01"},"content":{"rendered":"<div class=\"bpp-post-content\">\n<h2 style=\"margin-right: 16px; margin-left: 16px; outline: 0px; letter-spacing: 0.544px; white-space: normal; color: #2b2b2b; text-align: left; text-size-adjust: inherit; font-family: -apple-system-font, system-ui, 'Helvetica Neue', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei UI', 'Microsoft YaHei', Arial, sans-serif; background-color: #ffffff; visibility: visible;\"><span style=\"outline: 0px; color: #888888; letter-spacing: 0.544px; caret-color: #888888; white-space: pre-line; font-size: 12px; visibility: visible;\">\u4f60\u77e5\u9053\u7684\u8d8a\u591a\uff0c\u4e0d\u77e5\u9053\u7684\u5c31\u8d8a\u591a\uff0c\u4e1a\u4f59\u7684\u50cf\u4e00\u68f5\u5c0f\u8349\uff01<\/span><\/h2>\n<p style=\"margin-right: 16px; margin-bottom: 0px; margin-left: 16px; outline: 0px; letter-spacing: 0.544px; white-space: normal; color: #2b2b2b; font-size: 16px; text-align: left; text-size-adjust: inherit; font-family: -apple-system-font, system-ui, 'Helvetica Neue', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei UI', 'Microsoft YaHei', Arial, sans-serif; background-color: #ffffff; visibility: visible;\"><span style=\"outline: 0px; color: #888888; font-size: 12px; letter-spacing: 0.544px; white-space: pre-line; caret-color: #888888; visibility: visible;\">\u4f60\u6765\uff0c\u6211\u4eec\u4e00\u8d77\u7cbe\u8fdb\uff01\u4f60\u4e0d\u6765\uff0c\u6211\u548c\u4f60\u7684\u7ade\u4e89\u5bf9\u624b\u4e00\u8d77\u7cbe\u8fdb\uff01<\/span><\/p>\n<h2 style=\"margin-right: 16px; margin-left: 16px; outline: 0px; letter-spacing: 0.544px; white-space: normal; color: #2b2b2b; text-align: left; text-size-adjust: inherit; font-family: -apple-system-font, system-ui, 'Helvetica Neue', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei UI', 'Microsoft YaHei', Arial, sans-serif; background-color: #ffffff; visibility: visible;\"><span style=\"outline: 0px; color: #888888; font-size: 12px; letter-spacing: 0.544px; white-space: pre-line; caret-color: #888888; visibility: visible;\">\u7f16\u8f91\uff1a\u4e1a\u4f59\u8349<\/span><\/h2>\n<p style=\"margin-right: 16px; margin-bottom: 0px; margin-left: 16px; outline: 0px; letter-spacing: 0.544px; white-space: normal; color: #2b2b2b; font-size: 16px; text-align: left; text-size-adjust: inherit; font-family: -apple-system-font, system-ui, 'Helvetica Neue', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei UI', 'Microsoft YaHei', Arial, sans-serif; background-color: #ffffff; visibility: visible;\"><span style=\"outline: 0px; color: #888888; font-size: 12px; letter-spacing: 0.544px; white-space: pre-line; caret-color: #888888; visibility: visible;\">\u6765\u6e90\uff1ajuejin.cn\/post\/7226612646543818807<\/span><\/p>\n<p style=\"margin-right: 16px; margin-bottom: 0px; margin-left: 16px; outline: 0px; letter-spacing: 0.544px; white-space: normal; color: #2b2b2b; font-size: 16px; text-align: left; text-size-adjust: inherit; font-family: -apple-system-font, system-ui, 'Helvetica Neue', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei UI', 'Microsoft YaHei', Arial, sans-serif; background-color: #ffffff; visibility: visible;\"><span style=\"outline: 0px; color: #888888; font-size: 12px; letter-spacing: 0.544px; white-space: pre-line; caret-color: #888888; visibility: visible;\">\u63a8\u8350\uff1a<span style=\"outline: 0px; letter-spacing: 0.544px; visibility: visible;\">https:\/\/www.xttblog.com\/?p=5364<\/span><\/span><\/p>\n<p style=\"margin-right: 16px; margin-bottom: 0px; margin-left: 16px; outline: 0px; letter-spacing: 0.544px; white-space: normal; color: #2b2b2b; font-size: 16px; text-align: left; text-size-adjust: inherit; font-family: -apple-system-font, system-ui, 'Helvetica Neue', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei UI', 'Microsoft YaHei', Arial, sans-serif; background-color: #ffffff; visibility: visible;\"><span style=\"outline: 0px; color: #888888; font-size: 12px; letter-spacing: 0.544px; white-space: pre-line; caret-color: #888888; visibility: visible;\">\u81ea\u5f8b\u624d<\/span><span style=\"outline: 0px; color: #888888; letter-spacing: 0.544px; caret-color: #888888; white-space: pre-line; font-size: 12px; visibility: visible;\">\u80fd\u81ea\u7531\uff01\u8ba9\u8fdb\u6b65\u53d1\u751f\uff01<\/span><\/p>\n<section style=\"font-size: 16px; padding-right: 10px; padding-left: 10px; word-break: break-word; text-align: left; line-height: 1.25; color: #2b2b2b; letter-spacing: 2px; background-image: linear-gradient(90deg, rgba(50, 0, 0, 0.04) 3%, rgba(0, 0, 0, 0) 3%), linear-gradient(360deg, rgba(50, 0, 0, 0.04) 3%, rgba(0, 0, 0, 0) 3%); background-size: 20px 20px; background-position: center center; font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;\">\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u5982\u679c\u4f60\u4f1a\u4efb\u610f\u4e00\u95e8\u8bed\u8a00\u7684stream\u6d41\uff0c\u6ca1\u9053\u7406\u4e0d\u4f1a\u5927\u6570\u636e\u5f00\u53d1\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u4fd7\u8bdd\u8bf4\u7537\u8ffd\u5973\u9694\u5ea7\u5c71\uff0c\u5973\u8ffd\u7537\u9694\u5c42\u7eb1\u3002 \u5982\u679c\u8bf4\u96f6\u57fa\u7840\u5b66\u5927\u6570\u636e\uff0c\u611f\u89c9\u524d\u9762\u662f\u4e00\u5ea7\u5c71\uff0c\u90a3\u4e48\u53ea\u8981\u4f60\u4f1ajava\u6216\u8005\u4efb\u610f\u4e00\u95e8\u8bed\u8a00\u7684stream\u6d41\uff0c\u90a3\u5927\u6570\u636e\u5c31\u53ea\u9694\u4e86\u4e00\u5c42\u7eb1\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u672c\u6587\u4ee5java stream\u6d41\u8ba1\u7b97\u4e3a\u4f8b\uff0c\u8bb2\u89e3\u4e00\u4e9b\u57fa\u7840\u7684spark\u64cd\u4f5c\u3002\u53e6\u4e00\u4e2a\u6d41\u884c\u7684\u5927\u6570\u636e\u6846\u67b6flink\u540c\u7406\u3002<\/p>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; color: black; font-size: 22px; border-bottom: 4px solid #40b8fa;\"><span style=\"display: flex; color: #40b8fa; font-size: 20px; margin-left: 25px;\">\u51c6\u5907\u5de5\u4f5c<\/span><\/h2>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u6d4b\u8bd5\u6570\u636e,\u4ee5\u4e0b\u5217\u5206\u522b\u8868\u793a\u59d3\u540d\uff0c\u5e74\u9f84\uff0c\u90e8\u95e8\uff0c\u804c\u4f4d\u3002<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">\u5f20\u4e09,<span style=\"color: #d19a66; line-height: 26px;\">20<\/span>,\u7814\u53d1\u90e8,\u666e\u901a\u5458\u5de5\n\u674e\u56db,<span style=\"color: #d19a66; line-height: 26px;\">31<\/span>,\u7814\u53d1\u90e8,\u666e\u901a\u5458\u5de5\n\u674e\u4e3d,<span style=\"color: #d19a66; line-height: 26px;\">36<\/span>,\u8d22\u52a1\u90e8,\u666e\u901a\u5458\u5de5\n\u5f20\u4f1f,<span style=\"color: #d19a66; line-height: 26px;\">38<\/span>,\u7814\u53d1\u90e8,\u7ecf\u7406\n\u675c\u822a,<span style=\"color: #d19a66; line-height: 26px;\">25<\/span>,\u4eba\u4e8b\u90e8,\u666e\u901a\u5458\u5de5\n\u5468\u6b4c,<span style=\"color: #d19a66; line-height: 26px;\">28<\/span>,\u7814\u53d1\u90e8,\u666e\u901a\u5458\u5de5\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u521b\u5efa\u4e00\u4e2a<code style=\"margin-right: 2px; margin-left: 2px; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #3594f7; background: rgba(59, 170, 250, 0.1); padding-right: 2px; padding-left: 2px; border-radius: 2px; height: 21px; line-height: 22px;\">Employee<\/code>\u7c7b\u3002<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\"><span style=\"color: #61aeee; line-height: 26px;\">@Getter<\/span>\n<span style=\"color: #61aeee; line-height: 26px;\">@Setter<\/span>\n<span style=\"color: #61aeee; line-height: 26px;\">@AllArgsConstructor<\/span>\n<span style=\"color: #61aeee; line-height: 26px;\">@NoArgsConstructor<\/span>\n<span style=\"color: #61aeee; line-height: 26px;\">@ToString<\/span>\n<span style=\"color: #c678dd; line-height: 26px;\">static<\/span>\n<span style=\"line-height: 26px;\"><span style=\"color: #c678dd; line-height: 26px;\">class<\/span>\u00a0<span style=\"color: #e6c07b; line-height: 26px;\">Employee<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">implements<\/span>\u00a0<span style=\"color: #e6c07b; line-height: 26px;\">Serializable<\/span>\u00a0<\/span>{\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">private<\/span>\u00a0String\u00a0name;\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">private<\/span>\u00a0Integer\u00a0age;\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">private<\/span>\u00a0String\u00a0department;\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">private<\/span>\u00a0String\u00a0level;\n}\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u7248\u672c\uff1a jdk:1.8 spark:3.2.0 scala:2.12.15\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u4e0a\u9762\u7684 scala \u7248\u672c\u53ea\u662fspark\u6846\u67b6\u672c\u8eab\u9700\u8981\u4f9d\u8d56\u5230 scala\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u56e0\u4e3a scala \u786e\u5b9e\u662f\u6bd4\u8f83\u5c0f\u4f17\u7684\u8bed\u8a00\uff0c\u672c\u6587\u8fd8\u662f\u4f7f\u7528 java \u6f14\u793a spark \u4ee3\u7801\u3002<\/p>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; color: black; font-size: 22px; border-bottom: 4px solid #40b8fa;\"><span style=\"display: flex; color: #40b8fa; font-size: 20px; margin-left: 25px;\">map\u7c7b<\/span><\/h2>\n<h3 style=\"color: black; font-size: 17px; font-weight: bold; text-align: center; margin-top: 20px; margin-bottom: 20px;\"><span style=\"border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;\">java stream map<\/span><\/h3>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">map \u8868\u793a\u4e00\u5bf9\u4e00\u64cd\u4f5c\u3002\u5c06\u4e0a\u6e38\u6570\u636e\u7684\u4e00\u884c\u6570\u636e\u8fdb\u884c\u4efb\u610f\u64cd\u4f5c\uff0c\u6700\u7ec8\u5f97\u5230\u64cd\u4f5c\u540e\u7684\u4e00\u6761\u6570\u636e\u3002<br \/>\n\u8fd9\u79cd\u601d\u60f3\uff0c\u5728 java \u548c spark\uff0cflink \u90fd\u662f\u4e00\u81f4\u7684\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u6211\u4eec\u5148\u7528 java stream \u6f14\u793a\u8bfb\u53d6\u6587\u4ef6\uff0c\u518d\u4f7f\u7528map\u64cd\u4f5c\u5c06\u6bcf\u884c\u6570\u636e\u6620\u5c04\u4e3a<code style=\"margin-right: 2px; margin-left: 2px; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #3594f7; background: rgba(59, 170, 250, 0.1); padding-right: 2px; padding-left: 2px; border-radius: 2px; height: 21px; line-height: 22px;\">Employee<\/code>\u5bf9\u8c61\u3002<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">List&lt;String&gt;\u00a0list\u00a0=\u00a0FileUtils.readLines(<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0File(<span style=\"color: #98c379; line-height: 26px;\">\"f:\/test.txt\"<\/span>),\u00a0<span style=\"color: #98c379; line-height: 26px;\">\"utf-8\"<\/span>);\nList&lt;Employee&gt;\u00a0employeeList\u00a0=\u00a0list.stream().map(word\u00a0-&gt;\u00a0{\n\u00a0\u00a0\u00a0\u00a0List&lt;String&gt;\u00a0words\u00a0=\u00a0Arrays.stream(word.split(<span style=\"color: #98c379; line-height: 26px;\">\",\"<\/span>)).collect(Collectors.toList());\n\u00a0\u00a0\u00a0\u00a0Employee\u00a0employee\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0Employee(words.get(<span style=\"color: #d19a66; line-height: 26px;\">0<\/span>),\u00a0Integer.parseInt(words.get(<span style=\"color: #d19a66; line-height: 26px;\">1<\/span>)),\u00a0words.get(<span style=\"color: #d19a66; line-height: 26px;\">2<\/span>),\u00a0words.get(<span style=\"color: #d19a66; line-height: 26px;\">3<\/span>));\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">return<\/span>\u00a0employee;\n}).collect(Collectors.toList());\n\nemployeeList.forEach(System.out::println);\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u8f6c\u6362\u540e\u7684\u6570\u636e\uff1a<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">JavaStreamDemo.Employee(name=\u5f20\u4e09,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">20<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\nJavaStreamDemo.Employee(name=\u674e\u56db,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">31<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\nJavaStreamDemo.Employee(name=\u674e\u4e3d,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">36<\/span>,\u00a0department=\u8d22\u52a1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\nJavaStreamDemo.Employee(name=\u5f20\u4f1f,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">38<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u7ecf\u7406)\nJavaStreamDemo.Employee(name=\u675c\u822a,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">25<\/span>,\u00a0department=\u4eba\u4e8b\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\nJavaStreamDemo.Employee(name=\u5468\u6b4c,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">28<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\n<\/code><\/pre>\n<h3 style=\"color: black; font-size: 17px; font-weight: bold; text-align: center; margin-top: 20px; margin-bottom: 20px;\"><span style=\"border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;\">spark map<\/span><\/h3>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u9996\u5148\u5f97\u5230\u4e00\u4e2a SparkSession \u5bf9\u8c61\uff0c\u8bfb\u53d6\u6587\u4ef6\uff0c\u5f97\u5230\u4e00\u4e2a DataSet \u5f39\u6027\u6570\u636e\u96c6\u5bf9\u8c61\u3002<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">SparkSession\u00a0session\u00a0=\u00a0SparkSession.builder().master(<span style=\"color: #98c379; line-height: 26px;\">\"local[*]\"<\/span>).getOrCreate();\nDataset&lt;Row&gt;\u00a0reader\u00a0=\u00a0session.read().text(<span style=\"color: #98c379; line-height: 26px;\">\"F:\/test.txt\"<\/span>);\nreader.show();\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u8fd9\u91cc\u7684 show() \u5c31\u662f\u6253\u5370\u8f93\u51fa\u5f53\u524d\u6570\u636e\u96c6\uff0c\u5b83\u662f\u4e00\u4e2a action \u7c7b\u7684\u7b97\u5b50\u3002<br \/>\n\u5f97\u5230\u7ed3\u679c\uff1a<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">+-----------------------+\n|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0value|\n+-----------------------+\n|\u5f20\u4e09,<span style=\"color: #d19a66; line-height: 26px;\">20<\/span>,\u7814\u53d1\u90e8,\u666e\u901a\u5458\u5de5|\n|\u674e\u56db,<span style=\"color: #d19a66; line-height: 26px;\">31<\/span>,\u7814\u53d1\u90e8,\u666e\u901a\u5458\u5de5|\n|\u674e\u4e3d,<span style=\"color: #d19a66; line-height: 26px;\">36<\/span>,\u8d22\u52a1\u90e8,\u666e\u901a\u5458\u5de5|\n|\u00a0\u00a0\u00a0\u00a0\u5f20\u4f1f,<span style=\"color: #d19a66; line-height: 26px;\">38<\/span>,\u7814\u53d1\u90e8,\u7ecf\u7406|\n|\u675c\u822a,<span style=\"color: #d19a66; line-height: 26px;\">25<\/span>,\u4eba\u4e8b\u90e8,\u666e\u901a\u5458\u5de5|\n|\u5468\u6b4c,<span style=\"color: #d19a66; line-height: 26px;\">28<\/span>,\u7814\u53d1\u90e8,\u666e\u901a\u5458\u5de5|\n+-----------------------+\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u73b0\u5728\u6211\u4eec\u62ff\u5230\u4e86\u57fa\u7840\u6570\u636e\uff0c\u6211\u4eec\u4f7f\u7528map\u4e00\u5bf9\u4e00\u64cd\u4f5c\uff0c\u5c06\u4e00\u884c\u884c\u6570\u636e\u8f6c\u6362\u4e3a<code style=\"margin-right: 2px; margin-left: 2px; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #3594f7; background: rgba(59, 170, 250, 0.1); padding-right: 2px; padding-left: 2px; border-radius: 2px; height: 21px; line-height: 22px;\">Employee<\/code>\u5bf9\u8c61\u3002<br \/>\n\u6211\u4eec\u8fd9\u91cc\u4e0d\u4f7f\u7528lamda\u8868\u8fbe\u5f0f\uff0c\u8ba9\u5927\u5bb6\u770b\u5f97\u66f4\u52a0\u6e05\u6670\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u8fd9\u91cc\u5b9e\u73b0\u4e86MapFunction\u63a5\u53e3\u91cc\u7684call\u65b9\u6cd5\uff0c\u6bcf\u6b21\u62ff\u5230\u4e00\u884c\u6570\u636e\uff0c\u6211\u4eec\u8fd9\u91cc\u8fdb\u884c\u5207\u5206\uff0c\u518d\u8f6c\u6362\u4e3a\u5bf9\u8c61\u3002<\/p>\n<ol class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959;\">\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; font-size: 14px;\">\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin-top: 10px; margin-bottom: 10px; word-spacing: 2px;\">\u9700\u8981\u7279\u522b\u6307\u51fa\u7684\u4e00\u70b9\u662f\uff0c\u4e0e\u540e\u7aefWEB\u5e94\u7528\u6709\u4e00\u4e2a\u7edf\u4e00\u5f02\u5e38\u5904\u7406\u4e0d\u540c\u7684\u662f\uff0c\u5927\u6570\u636e\u5e94\u7528\uff0c\u7279\u522b\u662f\u6d41\u5f0f\u8ba1\u7b97\uff0c\u8981\u4fdd\u8bc17*24\u5728\u7ebf\uff0c\u9700\u8981\u5bf9\u6bcf\u4e2a\u7b97\u5b50\u8fdb\u884c\u5f02\u5e38\u6355\u83b7\u3002<br \/>\n\u56e0\u4e3a\u4f60\u4e0d\u77e5\u9053\u4e0a\u6e38\u6570\u636e\u6e05\u6d17\u5230\u5e95\u600e\u4e48\u6837\uff0c\u5f88\u53ef\u80fd\u62ff\u5230\u4e00\u6761\u810f\u6570\u636e\uff0c\u5904\u7406\u7684\u65f6\u5019\u629b\u51fa\u5f02\u5e38\uff0c\u5982\u679c\u6ca1\u6709\u6355\u83b7\u5904\u7406\uff0c\u90a3\u4e48\u6574\u4e2a\u5e94\u7528\u5c31\u4f1a\u6302\u6389\u3002<\/p>\n<\/section>\n<\/li>\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; font-size: 14px;\">\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; color: #2b2b2b; margin-top: 10px; margin-bottom: 10px; word-spacing: 2px;\">spark\u7684\u7b97\u5b50\u5206\u4e3aTransformation\u548cAction\u4e24\u79cd\u7c7b\u578b\u3002Transformation\u4f1a\u5f00\u6210\u4e00\u4e2aDAG\u56fe\uff0c\u5177\u6709lazy\u5ef6\u8fdf\u6027\uff0c\u5b83\u53ea\u4f1a\u4ece\u4e00\u4e2adataset(rdd\/df)\u8f6c\u6362\u6210\u53e6\u4e00\u4e2adataset(rdd\/df)\uff0c\u53ea\u6709\u5f53\u9047\u5230action\u7c7b\u7684\u7b97\u5b50\u624d\u4f1a\u771f\u6b63\u6267\u884c\u3002 \u6211\u4eec\u4eca\u5929\u4f1a\u6f14\u793a\u7684\u7b97\u5b50\u90fd\u662fTransformation\u7c7b\u7684\u7b97\u5b50\u3002<\/p>\n<\/section>\n<\/li>\n<\/ol>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u5178\u578b\u7684Action\u7b97\u5b50\u5305\u62ecshow,collect,save\u4e4b\u7c7b\u7684\u3002\u6bd4\u5982\u5728\u672c\u5730\u8fdb\u884cshow\u67e5\u770b\u7ed3\u679c\uff0c\u6216\u8005\u5b8c\u6210\u8fd0\u884c\u540esave\u5230\u6570\u636e\u5e93\uff0c\u6216\u8005HDFS\u3002<\/p>\n<ol class=\"list-paddingleft-1\" style=\"margin-top: 8px; margin-bottom: 8px; padding-left: 25px; font-size: 15px; color: #595959;\" start=\"3\">\n<li>\n<section style=\"margin-top: 5px; margin-bottom: 5px; line-height: 26px; font-size: 14px;\">spark\u6267\u884c\u65f6\u5206\u4e3adriver\u548cexecutor\u3002\u4f46\u4e0d\u662f\u672c\u6587\u7684\u91cd\u70b9\uff0c\u4e0d\u4f1a\u5c55\u5f00\u8bb2\u3002 \u53ea\u9700\u8981\u6ce8\u610fdriver\u7aef\u4f1a\u5c06\u4ee3\u7801\u5206\u53d1\u5230\u5404\u4e2a\u5206\u5e03\u5f0f\u7cfb\u7edf\u7684\u8282\u70b9executor\u4e0a\uff0c\u5b83\u672c\u8eab\u4e0d\u4f1a\u53c2\u4e0e\u8ba1\u7b97\u3002\u4e00\u822c\u6765\u8bf4\uff0c\u7b97\u5b50\u5916\u90e8\uff0c\u5982\u4ee5\u4e0b\u793a\u4f8b\u4ee3\u7801\u7684a\u5904\u4f1a\u5728driver\u7aef\u6267\u884c\uff0cb\u5904\u7b97\u5b50\u5185\u90e8\u4f1a\u4e0d\u540c\u670d\u52a1\u5668\u4e0a\u7684executor\u7aef\u6267\u884c\u3002 \u6240\u4ee5\u5728\u7b97\u5b50\u5916\u90e8\u5b9a\u4e49\u7684\u53d8\u91cf\uff0c\u5728\u7b97\u5b50\u5185\u90e8\u4f7f\u7528\u7684\u65f6\u5019\u8981\u7279\u522b\u6ce8\u610f\uff01\uff01 \u4e0d\u8981\u60f3\u5f53\u7136\u5730\u4ee5\u4e3a\u90fd\u662f\u4e00\u4e2amain\u65b9\u6cd5\u91cc\u5199\u7684\u4ee3\u7801\uff0c\u5c31\u4e00\u5b9a\u4f1a\u5728\u540c\u4e00\u4e2aJVM\u91cc\u3002<\/section>\n<\/li>\n<\/ol>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u8fd9\u91cc\u6d89\u53ca\u5230\u5e8f\u5217\u5316\u7684\u95ee\u9898\uff0c\u540c\u65f6\u5b83\u4eec\u5206\u5904\u4e0d\u540c\u7684JVM\uff0c\u4f7f\u7528\"==\"\u6bd4\u8f83\u7684\u65f6\u5019\u4e5f\u53ef\u80fd\u4f1a\u51fa\u95ee\u9898\uff01\uff01<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u8fd9\u662f\u4e00\u4e2a\u540e\u7aefWEB\u5f00\u53d1\u8f6c\u5411\u5927\u6570\u636e\u5f00\u53d1\u65f6\uff0c\u8fd9\u4e2a\u601d\u60f3\u4e00\u5b9a\u8981\u8f6c\u53d8\u8fc7\u6765\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\"><code style=\"margin-right: 2px; margin-left: 2px; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #3594f7; background: rgba(59, 170, 250, 0.1); padding-right: 2px; padding-left: 2px; border-radius: 2px; height: 21px; line-height: 22px;\">\u7b80\u8a00\u4e4b\uff0c\u540e\u7aefWEB\u670d\u52a1\u7684\u5206\u5e03\u5f0f\u662f\u6211\u4eec\u81ea\u5df1\u5b9e\u73b0\u7684\uff0c\u5927\u6570\u636e\u7684\u5206\u5e03\u5f0f\u662f\u6846\u67b6\u5929\u751f\u5e2e\u6211\u4eec\u5b9e\u73b0\u7684<\/code>\u3002<\/p>\n<h3 style=\"color: black; font-size: 17px; font-weight: bold; text-align: center; margin-top: 20px; margin-bottom: 20px;\"><span style=\"border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;\">MapFunction<\/span><\/h3>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">\/\/ a \u7b97\u5b50\u5916\u90e8\uff0cdriver\u7aef\nDataset&lt;Employee&gt; employeeDataset = reader.map(new MapFunction&lt;Row, Employee&gt;() {\n            @Override\n            public Employee call(Row row) throws Exception {\n                \/\/ b \u7b97\u5b50\u5185\u90e8\uff0cexecutor\u7aef\n                Employee employee = null;\n                try {\n                    \/\/ gson.fromJson(); \u8fd9\u91cc\u4f7f\u7528gson\u6d89\u53ca\u5230\u5e8f\u5217\u5316\u95ee\u9898\n                    List&lt;String&gt; list = Arrays.stream(row.mkString().split(\",\")).collect(Collectors.toList());\n                    employee = new Employee(list.get(0), Integer.parseInt(list.get(1)), list.get(2), list.get(3));\n                } catch (Exception exception) {\n                    \/\/ \u65e5\u5fd7\u8bb0\u5f55\n                    \/\/ \u6d41\u5f0f\u8ba1\u7b97\u4e2d\u8981\u505a\u52307*24\u5c0f\u65f6\u4e0d\u95f4\u65ad\uff0c\u4efb\u610f\u4e00\u6761\u4e0a\u6d41\u810f\u6570\u636e\u90fd\u53ef\u80fd\u5bfc\u81f4\u5931\u8d25\uff0c\u4ece\u800c\u5bfc\u81f4\u4efb\u52a1\u9000\u51fa\uff0c\u6240\u4ee5\u8fd9\u91cc\u8981\u505a\u597d\u5f02\u5e38\u7684\u6293\u53d6\n                    exception.printStackTrace();\n                }\n                return employee;\n            }\n        }, Encoders.bean(Employee.class));\n\n        employeeDataset.show();\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u8f93\u51fa<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">+---+----------+--------+----+\n|age|department|\u00a0\u00a0\u00a0level|name|\n+---+----------+--------+----+\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">20<\/span>|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u5f20\u4e09|\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">31<\/span>|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u674e\u56db|\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">36<\/span>|\u00a0\u00a0\u00a0\u00a0\u8d22\u52a1\u90e8|\u666e\u901a\u5458\u5de5|\u674e\u4e3d|\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">38<\/span>|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u00a0\u00a0\u00a0\u00a0\u7ecf\u7406|\u5f20\u4f1f|\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">25<\/span>|\u00a0\u00a0\u00a0\u00a0\u4eba\u4e8b\u90e8|\u666e\u901a\u5458\u5de5|\u675c\u822a|\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">28<\/span>|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u5468\u6b4c|\n<\/code><\/pre>\n<h3 style=\"color: black; font-size: 17px; font-weight: bold; text-align: center; margin-top: 20px; margin-bottom: 20px;\"><span style=\"border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;\">MapPartitionsFunction<\/span><\/h3>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">spark\u4e2d map\u548cmapPartitions\u6709\u5565\u533a\u522b\uff1f<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">map \u662f 1 \u6761 1 \u6761\u5904\u7406\u6570\u636e\u3002 mapPartitions \u662f\u4e00\u4e2a\u5206\u533a\u4e00\u4e2a\u5206\u533a\u5904\u7406\u6570\u636e\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u540e\u8005\u4e00\u5b9a\u6bd4\u524d\u8005\u6548\u7387\u9ad8\u5417\uff1f<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u4e0d\u4e00\u5b9a\uff0c\u770b\u5177\u4f53\u60c5\u51b5\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u8fd9\u91cc\u4f7f\u7528\u524d\u9762 map \u4e00\u6837\u7684\u903b\u8f91\u5904\u7406\u3002\u53ef\u4ee5\u770b\u5230\u5728 call \u65b9\u6cd5\u91cc\u5f97\u5230\u7684\u662f\u4e00\u4e2a Iterator \u8fed\u4ee3\u5668\uff0c\u662f\u4e00\u6279\u6570\u636e\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u5f97\u5230\u4e00\u6279\u6570\u636e\uff0c\u7136\u540e\u518d\u4e00\u5bf9\u4e00\u6620\u5c04\u4e3a\u5bf9\u8c61\uff0c\u518d\u4ee5 Iterator \u7684\u5f62\u5f0f\u8fd4\u56de\u8fd9\u6279\u6570\u636e\u3002<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">Dataset&lt;Employee&gt;\u00a0employeeDataset2\u00a0=\u00a0reader.mapPartitions(<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0MapPartitionsFunction&lt;Row,\u00a0Employee&gt;()\u00a0{\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@Override<\/span>\n\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\"><span style=\"color: #c678dd; line-height: 26px;\">public<\/span>\u00a0Iterator&lt;Employee&gt;\u00a0<span style=\"color: #61aeee; line-height: 26px;\">call<\/span><span style=\"line-height: 26px;\">(Iterator&lt;Row&gt;\u00a0iterator)<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">throws<\/span>\u00a0Exception\u00a0<\/span>{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0List&lt;Employee&gt;\u00a0employeeList\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0ArrayList&lt;&gt;();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">while<\/span>\u00a0(iterator.hasNext()){\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Row\u00a0row\u00a0=\u00a0iterator.next();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">try<\/span>\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0List&lt;String&gt;\u00a0list\u00a0=\u00a0Arrays.stream(row.mkString().split(<span style=\"color: #98c379; line-height: 26px;\">\",\"<\/span>)).collect(Collectors.toList());\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Employee\u00a0employee\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0Employee(list.get(<span style=\"color: #d19a66; line-height: 26px;\">0<\/span>),\u00a0Integer.parseInt(list.get(<span style=\"color: #d19a66; line-height: 26px;\">1<\/span>)),\u00a0list.get(<span style=\"color: #d19a66; line-height: 26px;\">2<\/span>),\u00a0list.get(<span style=\"color: #d19a66; line-height: 26px;\">3<\/span>));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0employeeList.add(employee);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\u00a0<span style=\"color: #c678dd; line-height: 26px;\">catch<\/span>\u00a0(Exception\u00a0exception)\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0\u65e5\u5fd7\u8bb0\u5f55<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0\u6d41\u5f0f\u8ba1\u7b97\u4e2d\u8981\u505a\u52307*24\u5c0f\u65f6\u4e0d\u95f4\u65ad\uff0c\u4efb\u610f\u4e00\u6761\u4e0a\u6d41\u810f\u6570\u636e\u90fd\u53ef\u80fd\u5bfc\u81f4\u5931\u8d25\uff0c\u4ece\u800c\u5bfc\u81f4\u4efb\u52a1\u9000\u51fa\uff0c\u6240\u4ee5\u8fd9\u91cc\u8981\u505a\u597d\u5f02\u5e38\u7684\u6293\u53d6<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0exception.printStackTrace();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">return<\/span>\u00a0employeeList.iterator();\n\u00a0\u00a0\u00a0\u00a0}\n},\u00a0Encoders.bean(Employee<span style=\"line-height: 26px;\">.<span style=\"color: #c678dd; line-height: 26px;\">class<\/span>))<\/span>;\n\nemployeeDataset2.show();\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u8f93\u51fa\u7ed3\u679c\u8ddf map \u4e00\u6837\uff0c\u8fd9\u91cc\u5c31\u4e0d\u8d34\u51fa\u6765\u4e86\u3002<\/p>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; color: black; font-size: 22px; border-bottom: 4px solid #40b8fa;\"><span style=\"display: flex; color: #40b8fa; font-size: 20px; margin-left: 25px;\">flatMap\u7c7b<\/span><\/h2>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">map\u548cflatMap\u6709\u4ec0\u4e48\u533a\u522b\uff1f<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">map\u662f\u4e00\u5bf9\u4e00\uff0cflatMap\u662f\u4e00\u5bf9\u591a\u3002 \u5f53\u7136\u5728java stream\u4e2d\uff0cflatMap \u53eb\u6cd5\u53eb\u505a\u6241\u5e73\u5316\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u8fd9\u79cd\u601d\u60f3\uff0c\u5728java\u548cspark,flink\u90fd\u662f\u4e00\u81f4\u7684\u3002<\/p>\n<h3 style=\"color: black; font-size: 17px; font-weight: bold; text-align: center; margin-top: 20px; margin-bottom: 20px;\"><span style=\"border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;\">java stream flatMap<\/span><\/h3>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u4ee5\u4e0b\u4ee3\u7801\u5c061\u6761\u539f\u59cb\u6570\u636e\u6620\u5c04\u52302\u4e2a\u5bf9\u8c61\u4e0a\u5e76\u8fd4\u56de\u3002<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">List&lt;Employee&gt;\u00a0employeeList2\u00a0=\u00a0list.stream().flatMap(word\u00a0-&gt;\u00a0{\nList&lt;String&gt;\u00a0words\u00a0=\u00a0Arrays.stream(word.split(<span style=\"color: #98c379; line-height: 26px;\">\",\"<\/span>)).collect(Collectors.toList());\nList&lt;Employee&gt;\u00a0lists\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0ArrayList&lt;&gt;();\nEmployee\u00a0employee\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0Employee(words.get(<span style=\"color: #d19a66; line-height: 26px;\">0<\/span>),\u00a0Integer.parseInt(words.get(<span style=\"color: #d19a66; line-height: 26px;\">1<\/span>)),\u00a0words.get(<span style=\"color: #d19a66; line-height: 26px;\">2<\/span>),\u00a0words.get(<span style=\"color: #d19a66; line-height: 26px;\">3<\/span>));\nlists.add(employee);\nEmployee\u00a0employee2\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0Employee(words.get(<span style=\"color: #d19a66; line-height: 26px;\">0<\/span>)+<span style=\"color: #98c379; line-height: 26px;\">\"_2\"<\/span>,\u00a0Integer.parseInt(words.get(<span style=\"color: #d19a66; line-height: 26px;\">1<\/span>)),\u00a0words.get(<span style=\"color: #d19a66; line-height: 26px;\">2<\/span>),\u00a0words.get(<span style=\"color: #d19a66; line-height: 26px;\">3<\/span>));\nlists.add(employee2);\n<span style=\"color: #c678dd; line-height: 26px;\">return<\/span>\u00a0lists.stream();\n}).collect(Collectors.toList());\nemployeeList2.forEach(System.out::println);\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u8f93\u51fa<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">JavaStreamDemo.Employee(name=\u5f20\u4e09,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">20<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\nJavaStreamDemo.Employee(name=\u5f20\u4e09_2,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">20<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\nJavaStreamDemo.Employee(name=\u674e\u56db,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">31<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\nJavaStreamDemo.Employee(name=\u674e\u56db_2,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">31<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\nJavaStreamDemo.Employee(name=\u674e\u4e3d,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">36<\/span>,\u00a0department=\u8d22\u52a1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\nJavaStreamDemo.Employee(name=\u674e\u4e3d_2,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">36<\/span>,\u00a0department=\u8d22\u52a1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\nJavaStreamDemo.Employee(name=\u5f20\u4f1f,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">38<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u7ecf\u7406)\nJavaStreamDemo.Employee(name=\u5f20\u4f1f_2,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">38<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u7ecf\u7406)\nJavaStreamDemo.Employee(name=\u675c\u822a,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">25<\/span>,\u00a0department=\u4eba\u4e8b\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\nJavaStreamDemo.Employee(name=\u675c\u822a_2,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">25<\/span>,\u00a0department=\u4eba\u4e8b\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\nJavaStreamDemo.Employee(name=\u5468\u6b4c,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">28<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\nJavaStreamDemo.Employee(name=\u5468\u6b4c_2,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">28<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\n<\/code><\/pre>\n<h3 style=\"color: black; font-size: 17px; font-weight: bold; text-align: center; margin-top: 20px; margin-bottom: 20px;\"><span style=\"border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;\">spark flatMap<\/span><\/h3>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u8fd9\u91cc\u5b9e\u73b0FlatMapFunction\u7684call\u65b9\u6cd5\uff0c\u4e00\u6b21\u62ff\u52301\u6761\u6570\u636e\uff0c\u7136\u540e\u8fd4\u56de\u503c\u662fIterator\uff0c\u6240\u4ee5\u53ef\u4ee5\u8fd4\u56de\u591a\u6761\u3002<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">Dataset&lt;Employee&gt;\u00a0employeeDatasetFlatmap\u00a0=\u00a0reader.flatMap(<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0FlatMapFunction&lt;Row,\u00a0Employee&gt;()\u00a0{\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@Override<\/span>\n\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\"><span style=\"color: #c678dd; line-height: 26px;\">public<\/span>\u00a0Iterator&lt;Employee&gt;\u00a0<span style=\"color: #61aeee; line-height: 26px;\">call<\/span><span style=\"line-height: 26px;\">(Row\u00a0row)<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">throws<\/span>\u00a0Exception\u00a0<\/span>{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0List&lt;Employee&gt;\u00a0employeeList\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0ArrayList&lt;&gt;();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">try<\/span>\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0List&lt;String&gt;\u00a0list\u00a0=\u00a0Arrays.stream(row.mkString().split(<span style=\"color: #98c379; line-height: 26px;\">\",\"<\/span>)).collect(Collectors.toList());\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Employee\u00a0employee\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0Employee(list.get(<span style=\"color: #d19a66; line-height: 26px;\">0<\/span>),\u00a0Integer.parseInt(list.get(<span style=\"color: #d19a66; line-height: 26px;\">1<\/span>)),\u00a0list.get(<span style=\"color: #d19a66; line-height: 26px;\">2<\/span>),\u00a0list.get(<span style=\"color: #d19a66; line-height: 26px;\">3<\/span>));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0employeeList.add(employee);\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Employee\u00a0employee2\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0Employee(list.get(<span style=\"color: #d19a66; line-height: 26px;\">0<\/span>)+<span style=\"color: #98c379; line-height: 26px;\">\"_2\"<\/span>,\u00a0Integer.parseInt(list.get(<span style=\"color: #d19a66; line-height: 26px;\">1<\/span>)),\u00a0list.get(<span style=\"color: #d19a66; line-height: 26px;\">2<\/span>),\u00a0list.get(<span style=\"color: #d19a66; line-height: 26px;\">3<\/span>));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0employeeList.add(employee2);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\u00a0<span style=\"color: #c678dd; line-height: 26px;\">catch<\/span>\u00a0(Exception\u00a0exception)\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0exception.printStackTrace();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">return<\/span>\u00a0employeeList.iterator();\n\u00a0\u00a0\u00a0\u00a0}\n},\u00a0Encoders.bean(Employee<span style=\"line-height: 26px;\">.<span style=\"color: #c678dd; line-height: 26px;\">class<\/span>))<\/span>;\nemployeeDatasetFlatmap.show();\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u8f93\u51fa<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">+---+----------+--------+------+\n|age|department|\u00a0\u00a0\u00a0level|\u00a0\u00a0name|\n+---+----------+--------+------+\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">20<\/span>|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u00a0\u00a0\u5f20\u4e09|\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">20<\/span>|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u5f20\u4e09_2|\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">31<\/span>|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u00a0\u00a0\u674e\u56db|\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">31<\/span>|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u674e\u56db_2|\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">36<\/span>|\u00a0\u00a0\u00a0\u00a0\u8d22\u52a1\u90e8|\u666e\u901a\u5458\u5de5|\u00a0\u00a0\u674e\u4e3d|\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">36<\/span>|\u00a0\u00a0\u00a0\u00a0\u8d22\u52a1\u90e8|\u666e\u901a\u5458\u5de5|\u674e\u4e3d_2|\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">38<\/span>|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u00a0\u00a0\u00a0\u00a0\u7ecf\u7406|\u00a0\u00a0\u5f20\u4f1f|\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">38<\/span>|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u00a0\u00a0\u00a0\u00a0\u7ecf\u7406|\u5f20\u4f1f_2|\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">25<\/span>|\u00a0\u00a0\u00a0\u00a0\u4eba\u4e8b\u90e8|\u666e\u901a\u5458\u5de5|\u00a0\u00a0\u675c\u822a|\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">25<\/span>|\u00a0\u00a0\u00a0\u00a0\u4eba\u4e8b\u90e8|\u666e\u901a\u5458\u5de5|\u675c\u822a_2|\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">28<\/span>|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u00a0\u00a0\u5468\u6b4c|\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">28<\/span>|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u5468\u6b4c_2|\n+---+----------+--------+------+\n<\/code><\/pre>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; color: black; font-size: 22px; border-bottom: 4px solid #40b8fa;\"><span style=\"display: flex; color: #40b8fa; font-size: 20px; margin-left: 25px;\">groupby\u7c7b<\/span><\/h2>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u4e0eSQL\u7c7b\u4f3c\uff0cjava stream\u6d41\u548cspark\u4e00\u6837\uff0cgroupby\u5bf9\u6570\u636e\u96c6\u8fdb\u884c\u5206\u7ec4\u5e76\u5728\u6b64\u57fa\u7840\u4e0a\u53ef\u4ee5\u8fdb\u884c\u805a\u5408\u51fd\u6570\u64cd\u4f5c\u3002\u4e5f\u53ef\u4ee5\u5206\u7ec4\u76f4\u63a5\u5f97\u5230\u4e00\u7ec4\u5b50\u6570\u636e\u96c6\u3002<\/p>\n<h3 style=\"color: black; font-size: 17px; font-weight: bold; text-align: center; margin-top: 20px; margin-bottom: 20px;\"><span style=\"border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;\">java stream groupBy<\/span><\/h3>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u6309\u90e8\u95e8\u5206\u7ec4\u7edf\u8ba1\u90e8\u95e8\u4eba\u6570\uff1a<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">Map&lt;String,\u00a0Long&gt;\u00a0map\u00a0=\u00a0employeeList.stream().collect(Collectors.groupingBy(Employee::getDepartment,\u00a0Collectors.counting()));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(map);\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u8f93\u51fa<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">{\u8d22\u52a1\u90e8=<span style=\"color: #d19a66; line-height: 26px;\">1<\/span>,\u00a0\u4eba\u4e8b\u90e8=<span style=\"color: #d19a66; line-height: 26px;\">1<\/span>,\u00a0\u7814\u53d1\u90e8=<span style=\"color: #d19a66; line-height: 26px;\">4<\/span>}\n<\/code><\/pre>\n<h3 style=\"color: black; font-size: 17px; font-weight: bold; text-align: center; margin-top: 20px; margin-bottom: 20px;\"><span style=\"border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;\">spark groupBy<\/span><\/h3>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u5c06\u6620\u5c04\u4e3a\u5bf9\u8c61\u7684\u6570\u636e\u96c6\u6309\u90e8\u95e8\u5206\u7ec4\uff0c\u5728\u6b64\u57fa\u7840\u4e0a\u7edf\u8ba1\u90e8\u95e8\u5458\u5de5\u6570\u548c\u5e73\u5747\u5e74\u9f84\u3002<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">RelationalGroupedDataset\u00a0datasetGroupBy\u00a0=\u00a0employeeDataset.groupBy(<span style=\"color: #98c379; line-height: 26px;\">\"department\"<\/span>);\n<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0\u7edf\u8ba1\u6bcf\u4e2a\u90e8\u95e8\u6709\u591a\u5c11\u5458\u5de5<\/span>\ndatasetGroupBy.count().show();\u00a0\n<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/**\n\u00a0*\u00a0\u6bcf\u4e2a\u90e8\u95e8\u7684\u5e73\u5747\u5e74\u9f84\n\u00a0*\/<\/span>\ndatasetGroupBy.avg(<span style=\"color: #98c379; line-height: 26px;\">\"age\"<\/span>).withColumnRenamed(<span style=\"color: #98c379; line-height: 26px;\">\"avg(age)\"<\/span>,<span style=\"color: #98c379; line-height: 26px;\">\"avgAge\"<\/span>).show();\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u8f93\u51fa\u5206\u522b\u4e3a<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">+----------+-----+\n|department|count|\n+----------+-----+\n|\u00a0\u00a0\u00a0\u00a0\u8d22\u52a1\u90e8|\u00a0\u00a0\u00a0\u00a0<span style=\"color: #d19a66; line-height: 26px;\">1<\/span>|\n|\u00a0\u00a0\u00a0\u00a0\u4eba\u4e8b\u90e8|\u00a0\u00a0\u00a0\u00a0<span style=\"color: #d19a66; line-height: 26px;\">1<\/span>|\n|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u00a0\u00a0\u00a0\u00a0<span style=\"color: #d19a66; line-height: 26px;\">4<\/span>|\n+----------+-----+\n<\/code><\/pre>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">+----------+------+\n|department|avgAge|\n+----------+------+\n|\u00a0\u00a0\u00a0\u00a0\u8d22\u52a1\u90e8|\u00a0\u00a0<span style=\"color: #d19a66; line-height: 26px;\">36.0<\/span>|\n|\u00a0\u00a0\u00a0\u00a0\u4eba\u4e8b\u90e8|\u00a0\u00a0<span style=\"color: #d19a66; line-height: 26px;\">25.0<\/span>|\n|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">29.25<\/span>|\n+----------+------+\n<\/code><\/pre>\n<h3 style=\"color: black; font-size: 17px; font-weight: bold; text-align: center; margin-top: 20px; margin-bottom: 20px;\"><span style=\"border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;\">spark groupByKey<\/span><\/h3>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">spark \u7684<code style=\"margin-right: 2px; margin-left: 2px; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #3594f7; background: rgba(59, 170, 250, 0.1); padding-right: 2px; padding-left: 2px; border-radius: 2px; height: 21px; line-height: 22px;\">groupBy<\/code>\u548c<code style=\"margin-right: 2px; margin-left: 2px; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #3594f7; background: rgba(59, 170, 250, 0.1); padding-right: 2px; padding-left: 2px; border-radius: 2px; height: 21px; line-height: 22px;\">groupByKey<\/code>\u7684\u533a\u522b\uff0c\u524d\u8005\u5728\u6b64\u57fa\u7840\u4e0a\u4f7f\u7528\u805a\u5408\u51fd\u6570\u5f97\u5230\u4e00\u4e2a\u805a\u5408\u503c\uff0c\u540e\u8005\u53ea\u662f\u8fdb\u884c\u5206\u7ec4\uff0c\u4e0d\u8fdb\u884c\u4efb\u4f55\u8ba1\u7b97\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u7c7b\u4f3c\u4e8ejava stream\u7684\uff1a<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">Map&lt;String,\u00a0List&lt;Employee&gt;&gt;\u00a0map2\u00a0=\u00a0employeeList.stream().collect(Collectors.groupingBy(Employee::getDepartment));\nSystem.out.println(map2);\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u8f93\u51fa<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">{\u8d22\u52a1\u90e8=[JavaStreamDemo.Employee(name=\u674e\u4e3d,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">36<\/span>,\u00a0department=\u8d22\u52a1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)],\u00a0\n\u4eba\u4e8b\u90e8=[JavaStreamDemo.Employee(name=\u675c\u822a,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">25<\/span>,\u00a0department=\u4eba\u4e8b\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)],\u00a0\n\u7814\u53d1\u90e8=[JavaStreamDemo.Employee(name=\u5f20\u4e09,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">20<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5),\u00a0JavaStreamDemo.Employee(name=\u674e\u56db,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">31<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5),\u00a0JavaStreamDemo.Employee(name=\u5f20\u4f1f,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">38<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u7ecf\u7406),\u00a0JavaStreamDemo.Employee(name=\u5468\u6b4c,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">28<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)]}\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u4f7f\u7528spark groupByKey\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u5148\u5f97\u5230\u4e00\u4e2akey-value\u7684\u4e00\u5bf9\u591a\u7684\u4e00\u4e2a\u96c6\u5408\u6570\u636e\u96c6\u3002 \u8fd9\u91cc\u7684call()\u65b9\u6cd5\u8fd4\u56de\u7684\u662fkey,\u5373\u5206\u7ec4\u7684key\u3002<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">KeyValueGroupedDataset\u00a0keyValueGroupedDataset\u00a0=\u00a0employeeDataset.groupByKey(<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0MapFunction&lt;Employee,\u00a0String&gt;()\u00a0{\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@Override<\/span>\n\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\"><span style=\"color: #c678dd; line-height: 26px;\">public<\/span>\u00a0String\u00a0<span style=\"color: #61aeee; line-height: 26px;\">call<\/span><span style=\"line-height: 26px;\">(Employee\u00a0employee)<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">throws<\/span>\u00a0Exception\u00a0<\/span>{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0\u8fd4\u56de\u5206\u7ec4\u7684key,\u8fd9\u91cc\u8868\u793a\u6839\u636e\u90e8\u95e8\u8fdb\u884c\u5206\u7ec4<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">return<\/span>\u00a0employee.getDepartment();\n\u00a0\u00a0\u00a0\u00a0}\n},\u00a0Encoders.STRING());\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u518d\u5728<code style=\"margin-right: 2px; margin-left: 2px; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #3594f7; background: rgba(59, 170, 250, 0.1); padding-right: 2px; padding-left: 2px; border-radius: 2px; height: 21px; line-height: 22px;\">keyValueGroupedDataset<\/code> \u7684\u57fa\u7840\u4e0a\u8fdb\u884cmapGroups\uff0c\u5728call()\u65b9\u6cd5\u91cc\u5c31\u53ef\u4ee5\u62ff\u5230\u6bcf\u4e2akey\u7684\u6240\u6709\u539f\u59cb\u6570\u636e\u3002<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">keyValueGroupedDataset.mapGroups(<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0MapGroupsFunction()\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@Override<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\"><span style=\"color: #c678dd; line-height: 26px;\">public<\/span>\u00a0Object\u00a0<span style=\"color: #61aeee; line-height: 26px;\">call<\/span><span style=\"line-height: 26px;\">(Object\u00a0key,\u00a0Iterator\u00a0iterator)<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">throws<\/span>\u00a0Exception\u00a0<\/span>{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(<span style=\"color: #98c379; line-height: 26px;\">\"key\u00a0=\u00a0\"<\/span>\u00a0+\u00a0key);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">while<\/span>\u00a0(iterator.hasNext()){\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(iterator.next());\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">return<\/span>\u00a0iterator;\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\u00a0Encoders.bean(Iterator<span style=\"line-height: 26px;\">.<span style=\"color: #c678dd; line-height: 26px;\">class<\/span>))\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.<span style=\"color: #e6c07b; line-height: 26px;\">show<\/span>()<\/span>;\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0\u8fd9\u91cc\u7684show()\u6ca1\u6709\u610f\u4e49\uff0c\u53ea\u662f\u89e6\u53d1\u8ba1\u7b97\u800c\u5df2<\/span>\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u8f93\u51fa<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">key\u00a0=\u00a0\u4eba\u4e8b\u90e8\nSparkDemo.Employee(name=\u675c\u822a,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">25<\/span>,\u00a0department=\u4eba\u4e8b\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\nkey\u00a0=\u00a0\u7814\u53d1\u90e8\nSparkDemo.Employee(name=\u5f20\u4e09,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">20<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\nSparkDemo.Employee(name=\u674e\u56db,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">31<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\nSparkDemo.Employee(name=\u5f20\u4f1f,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">38<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u7ecf\u7406)\nSparkDemo.Employee(name=\u5468\u6b4c,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">28<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\nkey\u00a0=\u00a0\u8d22\u52a1\u90e8\nSparkDemo.Employee(name=\u674e\u4e3d,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">36<\/span>,\u00a0department=\u8d22\u52a1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\n<\/code><\/pre>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; color: black; font-size: 22px; border-bottom: 4px solid #40b8fa;\"><span style=\"display: flex; color: #40b8fa; font-size: 20px; margin-left: 25px;\">reduce\u7c7b<\/span><\/h2>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\"><code style=\"margin-right: 2px; margin-left: 2px; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #3594f7; background: rgba(59, 170, 250, 0.1); padding-right: 2px; padding-left: 2px; border-radius: 2px; height: 21px; line-height: 22px;\">reduce<\/code>\u7684\u5b57\u9762\u610f\u601d\u662f\uff1a\u51cf\u5c11\uff1b\u51cf\u5c0f\uff1b\u964d\u4f4e\uff1b\u7f29\u5c0f\u3002<br \/>\n\u53c8\u53eb\u5f52\u7ea6\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u5b83\u5c06\u6570\u636e\u96c6\u8fdb\u884c\u5faa\u73af\uff0c\u8ba9<code style=\"margin-right: 2px; margin-left: 2px; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #3594f7; background: rgba(59, 170, 250, 0.1); padding-right: 2px; padding-left: 2px; border-radius: 2px; height: 21px; line-height: 22px;\">\u5f53\u524d\u5bf9\u8c61<\/code>\u548c<code style=\"margin-right: 2px; margin-left: 2px; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #3594f7; background: rgba(59, 170, 250, 0.1); padding-right: 2px; padding-left: 2px; border-radius: 2px; height: 21px; line-height: 22px;\">\u524d\u4e00\u5bf9\u8c61<\/code>\u4e24\u4e24\u8fdb\u884c\u8ba1\u7b97\uff0c\u6bcf\u6b21\u8ba1\u7b97\u5f97\u5230\u7684\u7ed3\u679c\u4f5c\u4e3a<code style=\"margin-right: 2px; margin-left: 2px; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #3594f7; background: rgba(59, 170, 250, 0.1); padding-right: 2px; padding-left: 2px; border-radius: 2px; height: 21px; line-height: 22px;\">\u4e0b\u4e00\u6b21<\/code>\u8ba1\u7b97\u7684<code style=\"margin-right: 2px; margin-left: 2px; font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace; word-break: break-all; color: #3594f7; background: rgba(59, 170, 250, 0.1); padding-right: 2px; padding-left: 2px; border-radius: 2px; height: 21px; line-height: 22px;\">\u524d\u4e00\u5bf9\u8c61<\/code>\uff0c\u5e76\u6700\u7ec8\u5f97\u5230\u4e00\u4e2a\u5bf9\u8c61\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u5047\u8bbe\u67095\u4e2a\u6570\u636e\u30101\uff0c2\uff0c3\uff0c4\uff0c5\u3011\uff0c\u4f7f\u7528reduce\u8fdb\u884c\u6c42\u548c\u8ba1\u7b97\uff0c\u5206\u522b\u662f<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\"><img decoding=\"async\" class=\"rich_pages wxw-img lazyload\" style=\"border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: #999999 2px 4px 7px;\" title=\"\u4f1astream\u6d41\u5c31\u4f1a\u5927\u6570\u636e\uff01\" data-src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2023\/05\/20230522143804609.png\" src=\"https:\/\/s.nmxc.ltd\/sakurairo_vision\/@2.6\/load_svg\/inload.svg\" onerror=\"imgError(this)\" alt=\"\u4f1astream\u6d41\u5c31\u4f1a\u5927\u6570\u636e\uff01\" \/><noscript><img decoding=\"async\" class=\"rich_pages wxw-img\" style=\"border-radius: 6px; display: block; margin: 20px auto; object-fit: contain; box-shadow: #999999 2px 4px 7px;\" title=\"\u4f1astream\u6d41\u5c31\u4f1a\u5927\u6570\u636e\uff01\" src=\"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2023\/05\/20230522143804609.png\" alt=\"\u4f1astream\u6d41\u5c31\u4f1a\u5927\u6570\u636e\uff01\" \/><\/noscript><br \/>\n\u6bd4\u5982\u4e0a\u9762\u7684\u6d4b\u8bd5\u6570\u636e\u96c6\uff0c\u6211\u8981\u8ba1\u7b97\u5404\u90e8\u95e8\u5e74\u9f84\u603b\u6570\u3002\u4f7f\u7528\u805a\u5408\u51fd\u6570\u5f97\u5230\u7684\u662f\u4e00\u4e2aint\u7c7b\u578b\u7684\u6570\u5b57\u3002<\/p>\n<h3 style=\"color: black; font-size: 17px; font-weight: bold; text-align: center; margin-top: 20px; margin-bottom: 20px;\"><span style=\"border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;\">java stream reduce<\/span><\/h3>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\"><span style=\"color: #c678dd; line-height: 26px;\">int<\/span>\u00a0age\u00a0=\u00a0employeeList.stream().mapToInt(e\u00a0-&gt;\u00a0e.age).sum();\nSystem.out.println(age);<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/178<\/span>\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u4f7f\u7528 reduce \u4e5f\u53ef\u8fdb\u884c\u4e0a\u9762\u7684\u8ba1\u7b97<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\"><span style=\"color: #c678dd; line-height: 26px;\">int<\/span>\u00a0age1\u00a0=\u00a0employeeList.stream().mapToInt(e\u00a0-&gt;\u00a0e.getAge()).reduce(<span style=\"color: #d19a66; line-height: 26px;\">0<\/span>,(a,b)\u00a0-&gt;\u00a0a+b);\nSystem.out.println(age1);<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0178<\/span>\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u4f46\u662f\u6211\u5c06\u5e74\u9f84\u6c42\u548c\uff0c\u540c\u65f6\u5f97\u5230\u4e00\u4e2a\u5b8c\u6574\u7684\u5bf9\u8c61\u5462\uff1f<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">JavaStreamDemo.Employee(name=\u5468\u6b4c,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">178<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u53ef\u4ee5\u4f7f\u7528 reduce \u5c06\u6570\u636e\u96c6\u4e24\u4e24\u5faa\u73af\uff0c\u5c06\u5e74\u9f84\u76f8\u52a0\uff0c\u540c\u65f6\u8fd4\u56de\u6700\u540e\u4e00\u4e2a\u904d\u5386\u7684\u5bf9\u8c61\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u4e0b\u9762\u4ee3\u7801\u7684 pre \u4ee3\u8868\u524d\u4e00\u4e2a\u5bf9\u8c61\uff0ccurrent \u4ee3\u8868\u5f53\u524d\u5bf9\u8c61\u3002<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/**\n\u00a0*\u00a0pre\u00a0\u4ee3\u8868\u524d\u4e00\u4e2a\u5bf9\u8c61\n\u00a0*\u00a0current\u00a0\u4ee3\u8868\u5f53\u524d\u5bf9\u8c61\n\u00a0*\/<\/span>\nEmployee\u00a0reduceEmployee\u00a0=\u00a0employeeList.stream().reduce(<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0Employee(),\u00a0(pre,current)\u00a0-&gt;\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0\u5f53\u7b2c\u4e00\u6b21\u5faa\u73af\u65f6\u524d\u4e00\u4e2a\u5bf9\u8c61\u4e3anull<\/span>\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">if<\/span>\u00a0(pre.getAge()\u00a0==\u00a0<span style=\"color: #c678dd; line-height: 26px;\">null<\/span>)\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0current.setAge(current.getAge());\n\u00a0\u00a0\u00a0\u00a0}\u00a0<span style=\"color: #c678dd; line-height: 26px;\">else<\/span>\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0current.setAge(pre.getAge()\u00a0+\u00a0current.getAge());\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">return<\/span>\u00a0current;\n});\nSystem.out.println(reduceEmployee);\n<\/code><\/pre>\n<h3 style=\"color: black; font-size: 17px; font-weight: bold; text-align: center; margin-top: 20px; margin-bottom: 20px;\"><span style=\"border-bottom: 2px solid RGBA(79, 177, 249, .65); color: #2b2b2b; padding-bottom: 2px;\">spark reduce<\/span><\/h3>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">spark reduce\u7684\u57fa\u672c\u601d\u60f3\u8ddfjava stream\u662f\u4e00\u6837\u7684\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u76f4\u63a5\u770b\u4ee3\u7801\uff1a<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">Employee\u00a0datasetReduce\u00a0=\u00a0employeeDataset.reduce(<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0ReduceFunction&lt;Employee&gt;()\u00a0{\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@Override<\/span>\n\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\"><span style=\"color: #c678dd; line-height: 26px;\">public<\/span>\u00a0Employee\u00a0<span style=\"color: #61aeee; line-height: 26px;\">call<\/span><span style=\"line-height: 26px;\">(Employee\u00a0t1,\u00a0Employee\u00a0t2)<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">throws<\/span>\u00a0Exception\u00a0<\/span>{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0\u4e0d\u540c\u7684\u7248\u672c\u770b\u662f\u5426\u9700\u8981\u5224\u65adt1\u00a0==\u00a0null<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0t2.setAge(t1.getAge()\u00a0+\u00a0t2.getAge());\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">return<\/span>\u00a0t2;\n\u00a0\u00a0\u00a0\u00a0}\n});\n\nSystem.out.println(datasetReduce);\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u8f93\u51fa<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">SparkDemo.Employee(name=\u5468\u6b4c,\u00a0age=<span style=\"color: #d19a66; line-height: 26px;\">178<\/span>,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\n<\/code><\/pre>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; color: black; font-size: 22px; border-bottom: 4px solid #40b8fa;\"><span style=\"display: flex; color: #40b8fa; font-size: 20px; margin-left: 25px;\">\u5176\u5b83\u5e38\u89c1\u64cd\u4f5c\u7c7b<\/span><\/h2>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">Employee\u00a0employee\u00a0=\u00a0employeeDataset.filter(<span style=\"color: #98c379; line-height: 26px;\">\"age\u00a0&gt;\u00a030\"<\/span>).limit(<span style=\"color: #d19a66; line-height: 26px;\">3<\/span>).sort(<span style=\"color: #98c379; line-height: 26px;\">\"age\"<\/span>).first();\nSystem.out.println(employee);\n<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0SparkDemo.Employee(name=\u674e\u56db,\u00a0age=31,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)<\/span>\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u540c\u65f6\u53ef\u4ee5\u5c06dataset\u6ce8\u518c\u6210table\uff0c\u4f7f\u7528\u66f4\u4e3a\u5f3a\u5927\u7684SQL\u6765\u8fdb\u884c\u5404\u79cd\u5f3a\u5927\u7684\u8fd0\u7b97\u3002<br \/>\n\u73b0\u5728SQL\u662fflink\u7684\u4e00\u7b49\u516c\u6c11\uff0cspark\u4e5f\u4e0d\u9051\u591a\u8ba9\u3002<br \/>\n\u8fd9\u91cc\u4e3e\u4e00\u4e2a\u975e\u5e38\u7b80\u5355\u7684\u4f8b\u5b50\u3002<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">employeeDataset.registerTempTable(<span style=\"color: #98c379; line-height: 26px;\">\"table\"<\/span>);\nsession.sql(<span style=\"color: #98c379; line-height: 26px;\">\"select\u00a0*\u00a0from\u00a0table\u00a0where\u00a0age\u00a0&gt;\u00a030\u00a0order\u00a0by\u00a0age\u00a0desc\u00a0limit\u00a03\"<\/span>).show();\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u8f93\u51fa<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">+---+----------+--------+----+\n|age|department|\u00a0\u00a0\u00a0level|name|\n+---+----------+--------+----+\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">38<\/span>|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u00a0\u00a0\u00a0\u00a0\u7ecf\u7406|\u5f20\u4f1f|\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">36<\/span>|\u00a0\u00a0\u00a0\u00a0\u8d22\u52a1\u90e8|\u666e\u901a\u5458\u5de5|\u674e\u4e3d|\n|\u00a0<span style=\"color: #d19a66; line-height: 26px;\">31<\/span>|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u674e\u56db|\n+---+----------+--------+----+\n<\/code><\/pre>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">employeeDataset.registerTempTable(<span style=\"color: #98c379; line-height: 26px;\">\"table\"<\/span>);\nsession.sql(<span style=\"color: #98c379; line-height: 26px;\">\"select\u00a0\n\u00a0\u00a0\u00a0\u00a0concat_ws(',',collect_set(name))\u00a0as\u00a0names,\u00a0\/\/\u00a0group_concat\n\u00a0\u00a0\u00a0\u00a0avg(age)\u00a0as\u00a0age,\n\u00a0\u00a0\u00a0\u00a0department\u00a0from\u00a0table\u00a0\n\u00a0\u00a0\u00a0\u00a0where\u00a0age\u00a0&gt;\u00a030\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0group\u00a0by\u00a0department\u00a0\n\u00a0\u00a0\u00a0\u00a0order\u00a0by\u00a0age\u00a0desc\u00a0\n\u00a0\u00a0\u00a0\u00a0limit\u00a03\"<\/span>).show();\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u8f93\u51fa<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\">+---------+----+----------+\n|\u00a0\u00a0\u00a0\u00a0names|\u00a0age|department|\n+---------+----+----------+\n|\u00a0\u00a0\u00a0\u00a0\u00a0\u674e\u4e3d|<span style=\"color: #d19a66; line-height: 26px;\">36.0<\/span>|\u00a0\u00a0\u00a0\u00a0\u8d22\u52a1\u90e8|\n|\u5f20\u4f1f,\u674e\u56db|<span style=\"color: #d19a66; line-height: 26px;\">34.5<\/span>|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\n+---------+----+----------+\n<\/code><\/pre>\n<h2 style=\"margin-top: 30px; margin-bottom: 15px; font-weight: bold; color: black; font-size: 22px; border-bottom: 4px solid #40b8fa;\"><span style=\"display: flex; color: #40b8fa; font-size: 20px; margin-left: 25px;\">\u5c0f\u7ed3<\/span><\/h2>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u672c\u6587\u4f9d\u636ejava stream\u7684\u76f8\u4f3c\u6027\uff0c\u4ecb\u7ecd\u4e86spark\u91cc\u9762\u4e00\u4e9b\u5e38\u89c1\u7684\u7b97\u5b50\u64cd\u4f5c\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u672c\u6587\u53ea\u662f\u505a\u4e00\u4e2a\u975e\u5e38\u7b80\u5355\u7684\u5165\u95e8\u4ecb\u7ecd\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u5982\u679c\u611f\u5174\u8da3\u7684\u8bdd\uff0c \u540e\u7aef\u7684\u540c\u5b66\u53ef\u4ee5\u5c1d\u8bd5\u7740\u64cd\u4f5c\u4e00\u4e0b\uff0c\u975e\u5e38\u7b80\u5355\uff0c\u672c\u5730\u4e0d\u9700\u8981\u642d\u5efa\u73af\u5883\uff0c\u53ea\u8981\u5f15\u5165spark \u7684 maven\u4f9d\u8d56\u5373\u53ef\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u6211\u628a\u672c\u6587\u7684\u6240\u6709\u4ee3\u7801\u5168\u90e8\u8d34\u5728\u6700\u540e\u9762\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">java stream \u6e90\u7801\uff1a<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u70b9\u51fb\u67e5\u770b\u4ee3\u7801<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\"><span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0lombok.*;\n<span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0org.apache.commons.io.FileUtils;\n\n<span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0java.io.File;\n<span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0java.io.IOException;\n<span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0java.io.Serializable;\n<span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0java.util.ArrayList;\n<span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0java.util.Arrays;\n<span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0java.util.List;\n<span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0java.util.Map;\n<span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0java.util.stream.Collectors;\n\n<span style=\"color: #c678dd; line-height: 26px;\">public<\/span>\u00a0<span style=\"line-height: 26px;\"><span style=\"color: #c678dd; line-height: 26px;\">class<\/span>\u00a0<span style=\"color: #e6c07b; line-height: 26px;\">JavaStreamDemo<\/span>\u00a0<\/span>{\n\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\"><span style=\"color: #c678dd; line-height: 26px;\">public<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">static<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">void<\/span>\u00a0<span style=\"color: #61aeee; line-height: 26px;\">main<\/span><span style=\"line-height: 26px;\">(String[]\u00a0args)<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">throws<\/span>\u00a0IOException\u00a0<\/span>{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0\u5f20\u4e09,20,\u7814\u53d1\u90e8,\u666e\u901a\u5458\u5de5\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0\u674e\u56db,31,\u7814\u53d1\u90e8,\u666e\u901a\u5458\u5de5\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0\u674e\u4e3d,36,\u8d22\u52a1\u90e8,\u666e\u901a\u5458\u5de5\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0\u5f20\u4f1f,38,\u7814\u53d1\u90e8,\u7ecf\u7406\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0\u675c\u822a,25,\u4eba\u4e8b\u90e8,\u666e\u901a\u5458\u5de5\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0\u5468\u6b4c,28,\u7814\u53d1\u90e8,\u666e\u901a\u5458\u5de5\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0List&lt;String&gt;\u00a0list\u00a0=\u00a0FileUtils.readLines(<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0File(<span style=\"color: #98c379; line-height: 26px;\">\"f:\/test.txt\"<\/span>),\u00a0<span style=\"color: #98c379; line-height: 26px;\">\"utf-8\"<\/span>);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0List&lt;Employee&gt;\u00a0employeeList\u00a0=\u00a0list.stream().map(word\u00a0-&gt;\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0List&lt;String&gt;\u00a0words\u00a0=\u00a0Arrays.stream(word.split(<span style=\"color: #98c379; line-height: 26px;\">\",\"<\/span>)).collect(Collectors.toList());\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Employee\u00a0employee\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0Employee(words.get(<span style=\"color: #d19a66; line-height: 26px;\">0<\/span>),\u00a0Integer.parseInt(words.get(<span style=\"color: #d19a66; line-height: 26px;\">1<\/span>)),\u00a0words.get(<span style=\"color: #d19a66; line-height: 26px;\">2<\/span>),\u00a0words.get(<span style=\"color: #d19a66; line-height: 26px;\">3<\/span>));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">return<\/span>\u00a0employee;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}).collect(Collectors.toList());\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0employeeList.forEach(System.out::println);<\/span>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0List&lt;Employee&gt;\u00a0employeeList2\u00a0=\u00a0list.stream().flatMap(word\u00a0-&gt;\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0List&lt;String&gt;\u00a0words\u00a0=\u00a0Arrays.stream(word.split(<span style=\"color: #98c379; line-height: 26px;\">\",\"<\/span>)).collect(Collectors.toList());\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0List&lt;Employee&gt;\u00a0lists\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0ArrayList&lt;&gt;();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Employee\u00a0employee\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0Employee(words.get(<span style=\"color: #d19a66; line-height: 26px;\">0<\/span>),\u00a0Integer.parseInt(words.get(<span style=\"color: #d19a66; line-height: 26px;\">1<\/span>)),\u00a0words.get(<span style=\"color: #d19a66; line-height: 26px;\">2<\/span>),\u00a0words.get(<span style=\"color: #d19a66; line-height: 26px;\">3<\/span>));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0lists.add(employee);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Employee\u00a0employee2\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0Employee(words.get(<span style=\"color: #d19a66; line-height: 26px;\">0<\/span>)+<span style=\"color: #98c379; line-height: 26px;\">\"_2\"<\/span>,\u00a0Integer.parseInt(words.get(<span style=\"color: #d19a66; line-height: 26px;\">1<\/span>)),\u00a0words.get(<span style=\"color: #d19a66; line-height: 26px;\">2<\/span>),\u00a0words.get(<span style=\"color: #d19a66; line-height: 26px;\">3<\/span>));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0lists.add(employee2);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">return<\/span>\u00a0lists.stream();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}).collect(Collectors.toList());\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0employeeList2.forEach(System.out::println);<\/span>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Map&lt;String,\u00a0Long&gt;\u00a0map\u00a0=\u00a0employeeList.stream().collect(Collectors.groupingBy(Employee::getDepartment,\u00a0Collectors.counting()));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(map);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Map&lt;String,\u00a0List&lt;Employee&gt;&gt;\u00a0map2\u00a0=\u00a0employeeList.stream().collect(Collectors.groupingBy(Employee::getDepartment));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(map2);\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">int<\/span>\u00a0age\u00a0=\u00a0employeeList.stream().mapToInt(e\u00a0-&gt;\u00a0e.age).sum();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(age);<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0178<\/span>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">int<\/span>\u00a0age1\u00a0=\u00a0employeeList.stream().mapToInt(e\u00a0-&gt;\u00a0e.getAge()).reduce(<span style=\"color: #d19a66; line-height: 26px;\">0<\/span>,(a,b)\u00a0-&gt;\u00a0a+b);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(age1);<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0178<\/span>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0pre\u00a0\u4ee3\u8868\u524d\u4e00\u4e2a\u5bf9\u8c61\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0current\u00a0\u4ee3\u8868\u5f53\u524d\u5bf9\u8c61\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Employee\u00a0reduceEmployee\u00a0=\u00a0employeeList.stream().reduce(<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0Employee(),\u00a0(pre,current)\u00a0-&gt;\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">if<\/span>\u00a0(pre.getAge()\u00a0==\u00a0<span style=\"color: #c678dd; line-height: 26px;\">null<\/span>)\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0current.setAge(current.getAge());\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\u00a0<span style=\"color: #c678dd; line-height: 26px;\">else<\/span>\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0current.setAge(pre.getAge()\u00a0+\u00a0current.getAge());\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">return<\/span>\u00a0current;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(reduceEmployee);\n\n\u00a0\u00a0\u00a0\u00a0}\n\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@Getter<\/span>\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@Setter<\/span>\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@AllArgsConstructor<\/span>\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@NoArgsConstructor<\/span>\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@ToString<\/span>\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">static<\/span>\n\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\"><span style=\"color: #c678dd; line-height: 26px;\">class<\/span>\u00a0<span style=\"color: #e6c07b; line-height: 26px;\">Employee<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">implements<\/span>\u00a0<span style=\"color: #e6c07b; line-height: 26px;\">Serializable<\/span>\u00a0<\/span>{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">private<\/span>\u00a0String\u00a0name;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">private<\/span>\u00a0Integer\u00a0age;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">private<\/span>\u00a0String\u00a0department;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">private<\/span>\u00a0String\u00a0level;\n\u00a0\u00a0\u00a0\u00a0}\n}\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">spark \u7684\u6e90\u7801\uff1a<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u70b9\u51fb\u67e5\u770b\u4ee3\u7801<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\"><span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0com.google.gson.Gson;\n<span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0lombok.*;\n<span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0org.apache.spark.api.java.function.*;\n<span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0org.apache.spark.sql.*;\n\n<span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0java.io.Serializable;\n<span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0java.util.ArrayList;\n<span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0java.util.Arrays;\n<span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0java.util.Iterator;\n<span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0java.util.List;\n<span style=\"color: #c678dd; line-height: 26px;\">import<\/span>\u00a0java.util.stream.Collectors;\n\n<span style=\"color: #c678dd; line-height: 26px;\">public<\/span>\u00a0<span style=\"line-height: 26px;\"><span style=\"color: #c678dd; line-height: 26px;\">class<\/span>\u00a0<span style=\"color: #e6c07b; line-height: 26px;\">SparkDemo<\/span>\u00a0<\/span>{\n\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\"><span style=\"color: #c678dd; line-height: 26px;\">public<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">static<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">void<\/span>\u00a0<span style=\"color: #61aeee; line-height: 26px;\">main<\/span><span style=\"line-height: 26px;\">(String[]\u00a0args)<\/span>\u00a0<\/span>{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0SparkSession\u00a0session\u00a0=\u00a0SparkSession.builder().master(<span style=\"color: #98c379; line-height: 26px;\">\"local[*]\"<\/span>).getOrCreate();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Dataset&lt;Row&gt;\u00a0reader\u00a0=\u00a0session.read().text(<span style=\"color: #98c379; line-height: 26px;\">\"F:\/test.txt\"<\/span>);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0reader.show();<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+-----------------------+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0value|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+-----------------------+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u5f20\u4e09,20,\u7814\u53d1\u90e8,\u666e\u901a\u5458\u5de5|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u674e\u56db,31,\u7814\u53d1\u90e8,\u666e\u901a\u5458\u5de5|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u674e\u4e3d,36,\u8d22\u52a1\u90e8,\u666e\u901a\u5458\u5de5|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u5f20\u4f1f,38,\u7814\u53d1\u90e8,\u7ecf\u7406|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u675c\u822a,25,\u4eba\u4e8b\u90e8,\u666e\u901a\u5458\u5de5|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u5468\u6b4c,28,\u7814\u53d1\u90e8,\u666e\u901a\u5458\u5de5|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+-----------------------+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\/<\/span>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0\u672c\u5730\u6f14\u793a\u800c\u5df2\uff0c\u5b9e\u9645\u5206\u5e03\u5f0f\u73af\u5883\uff0c\u8fd9\u91cc\u7684gson\u6d89\u53ca\u5230\u5e8f\u5217\u5316\u95ee\u9898<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0\u7b97\u5b50\u4ee5\u5916\u7684\u4ee3\u7801\u90fd\u5728driver\u7aef\u8fd0\u884c<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0\u4efb\u4f55\u7b97\u5b50\u4ee5\u5185\u7684\u4ee3\u7801\u90fd\u5728executor\u7aef\u8fd0\u884c,\u5373\u4f1a\u5728\u4e0d\u540c\u7684\u670d\u52a1\u5668\u8282\u70b9\u4e0a\u6267\u884c<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Gson\u00a0gson\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0Gson();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0a\u00a0\u7b97\u5b50\u5916\u90e8\uff0cdriver\u7aef<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Dataset&lt;Employee&gt;\u00a0employeeDataset\u00a0=\u00a0reader.map(<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0MapFunction&lt;Row,\u00a0Employee&gt;()\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@Override<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\"><span style=\"color: #c678dd; line-height: 26px;\">public<\/span>\u00a0Employee\u00a0<span style=\"color: #61aeee; line-height: 26px;\">call<\/span><span style=\"line-height: 26px;\">(Row\u00a0row)<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">throws<\/span>\u00a0Exception\u00a0<\/span>{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0b\u00a0\u7b97\u5b50\u5185\u90e8\uff0cexecutor\u7aef<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Employee\u00a0employee\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">null<\/span>;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">try<\/span>\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0gson.fromJson();\u00a0\u8fd9\u91cc\u4f7f\u7528gson\u6d89\u53ca\u5230\u5e8f\u5217\u5316\u95ee\u9898<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0List&lt;String&gt;\u00a0list\u00a0=\u00a0Arrays.stream(row.mkString().split(<span style=\"color: #98c379; line-height: 26px;\">\",\"<\/span>)).collect(Collectors.toList());\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0employee\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0Employee(list.get(<span style=\"color: #d19a66; line-height: 26px;\">0<\/span>),\u00a0Integer.parseInt(list.get(<span style=\"color: #d19a66; line-height: 26px;\">1<\/span>)),\u00a0list.get(<span style=\"color: #d19a66; line-height: 26px;\">2<\/span>),\u00a0list.get(<span style=\"color: #d19a66; line-height: 26px;\">3<\/span>));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\u00a0<span style=\"color: #c678dd; line-height: 26px;\">catch<\/span>\u00a0(Exception\u00a0exception)\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0\u65e5\u5fd7\u8bb0\u5f55<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0\u6d41\u5f0f\u8ba1\u7b97\u4e2d\u8981\u505a\u52307*24\u5c0f\u65f6\u4e0d\u95f4\u65ad\uff0c\u4efb\u610f\u4e00\u6761\u4e0a\u6d41\u810f\u6570\u636e\u90fd\u53ef\u80fd\u5bfc\u81f4\u5931\u8d25\uff0c\u4ece\u800c\u5bfc\u81f4\u4efb\u52a1\u9000\u51fa\uff0c\u6240\u4ee5\u8fd9\u91cc\u8981\u505a\u597d\u5f02\u5e38\u7684\u6293\u53d6<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0exception.printStackTrace();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">return<\/span>\u00a0employee;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\u00a0Encoders.bean(Employee<span style=\"line-height: 26px;\">.<span style=\"color: #c678dd; line-height: 26px;\">class<\/span>))<\/span>;\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0employeeDataset.show();<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+---+----------+--------+----+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|age|department|\u00a0\u00a0\u00a0level|name|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+---+----------+--------+----+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a020|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u5f20\u4e09|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a031|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u674e\u56db|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a036|\u00a0\u00a0\u00a0\u00a0\u8d22\u52a1\u90e8|\u666e\u901a\u5458\u5de5|\u674e\u4e3d|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a038|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u00a0\u00a0\u00a0\u00a0\u7ecf\u7406|\u5f20\u4f1f|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a025|\u00a0\u00a0\u00a0\u00a0\u4eba\u4e8b\u90e8|\u666e\u901a\u5458\u5de5|\u675c\u822a|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a028|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u5468\u6b4c|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\/<\/span>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Dataset&lt;Employee&gt;\u00a0employeeDataset2\u00a0=\u00a0reader.mapPartitions(<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0MapPartitionsFunction&lt;Row,\u00a0Employee&gt;()\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@Override<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\"><span style=\"color: #c678dd; line-height: 26px;\">public<\/span>\u00a0Iterator&lt;Employee&gt;\u00a0<span style=\"color: #61aeee; line-height: 26px;\">call<\/span><span style=\"line-height: 26px;\">(Iterator&lt;Row&gt;\u00a0iterator)<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">throws<\/span>\u00a0Exception\u00a0<\/span>{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0List&lt;Employee&gt;\u00a0employeeList\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0ArrayList&lt;&gt;();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">while<\/span>\u00a0(iterator.hasNext()){\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Row\u00a0row\u00a0=\u00a0iterator.next();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">try<\/span>\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0List&lt;String&gt;\u00a0list\u00a0=\u00a0Arrays.stream(row.mkString().split(<span style=\"color: #98c379; line-height: 26px;\">\",\"<\/span>)).collect(Collectors.toList());\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Employee\u00a0employee\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0Employee(list.get(<span style=\"color: #d19a66; line-height: 26px;\">0<\/span>),\u00a0Integer.parseInt(list.get(<span style=\"color: #d19a66; line-height: 26px;\">1<\/span>)),\u00a0list.get(<span style=\"color: #d19a66; line-height: 26px;\">2<\/span>),\u00a0list.get(<span style=\"color: #d19a66; line-height: 26px;\">3<\/span>));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0employeeList.add(employee);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\u00a0<span style=\"color: #c678dd; line-height: 26px;\">catch<\/span>\u00a0(Exception\u00a0exception)\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0\u65e5\u5fd7\u8bb0\u5f55<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0\u6d41\u5f0f\u8ba1\u7b97\u4e2d\u8981\u505a\u52307*24\u5c0f\u65f6\u4e0d\u95f4\u65ad\uff0c\u4efb\u610f\u4e00\u6761\u4e0a\u6d41\u810f\u6570\u636e\u90fd\u53ef\u80fd\u5bfc\u81f4\u5931\u8d25\uff0c\u4ece\u800c\u5bfc\u81f4\u4efb\u52a1\u9000\u51fa\uff0c\u6240\u4ee5\u8fd9\u91cc\u8981\u505a\u597d\u5f02\u5e38\u7684\u6293\u53d6<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0exception.printStackTrace();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">return<\/span>\u00a0employeeList.iterator();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\u00a0Encoders.bean(Employee<span style=\"line-height: 26px;\">.<span style=\"color: #c678dd; line-height: 26px;\">class<\/span>))<\/span>;\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0employeeDataset2.show();<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+---+----------+--------+----+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|age|department|\u00a0\u00a0\u00a0level|name|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+---+----------+--------+----+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a020|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u5f20\u4e09|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a031|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u674e\u56db|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a036|\u00a0\u00a0\u00a0\u00a0\u8d22\u52a1\u90e8|\u666e\u901a\u5458\u5de5|\u674e\u4e3d|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a038|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u00a0\u00a0\u00a0\u00a0\u7ecf\u7406|\u5f20\u4f1f|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a025|\u00a0\u00a0\u00a0\u00a0\u4eba\u4e8b\u90e8|\u666e\u901a\u5458\u5de5|\u675c\u822a|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a028|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u5468\u6b4c|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+---+----------+--------+----+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\/<\/span>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Dataset&lt;Employee&gt;\u00a0employeeDatasetFlatmap\u00a0=\u00a0reader.flatMap(<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0FlatMapFunction&lt;Row,\u00a0Employee&gt;()\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@Override<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\"><span style=\"color: #c678dd; line-height: 26px;\">public<\/span>\u00a0Iterator&lt;Employee&gt;\u00a0<span style=\"color: #61aeee; line-height: 26px;\">call<\/span><span style=\"line-height: 26px;\">(Row\u00a0row)<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">throws<\/span>\u00a0Exception\u00a0<\/span>{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0List&lt;Employee&gt;\u00a0employeeList\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0ArrayList&lt;&gt;();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">try<\/span>\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0List&lt;String&gt;\u00a0list\u00a0=\u00a0Arrays.stream(row.mkString().split(<span style=\"color: #98c379; line-height: 26px;\">\",\"<\/span>)).collect(Collectors.toList());\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Employee\u00a0employee\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0Employee(list.get(<span style=\"color: #d19a66; line-height: 26px;\">0<\/span>),\u00a0Integer.parseInt(list.get(<span style=\"color: #d19a66; line-height: 26px;\">1<\/span>)),\u00a0list.get(<span style=\"color: #d19a66; line-height: 26px;\">2<\/span>),\u00a0list.get(<span style=\"color: #d19a66; line-height: 26px;\">3<\/span>));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0employeeList.add(employee);\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Employee\u00a0employee2\u00a0=\u00a0<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0Employee(list.get(<span style=\"color: #d19a66; line-height: 26px;\">0<\/span>)+<span style=\"color: #98c379; line-height: 26px;\">\"_2\"<\/span>,\u00a0Integer.parseInt(list.get(<span style=\"color: #d19a66; line-height: 26px;\">1<\/span>)),\u00a0list.get(<span style=\"color: #d19a66; line-height: 26px;\">2<\/span>),\u00a0list.get(<span style=\"color: #d19a66; line-height: 26px;\">3<\/span>));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0employeeList.add(employee2);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\u00a0<span style=\"color: #c678dd; line-height: 26px;\">catch<\/span>\u00a0(Exception\u00a0exception)\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0exception.printStackTrace();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">return<\/span>\u00a0employeeList.iterator();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\u00a0Encoders.bean(Employee<span style=\"line-height: 26px;\">.<span style=\"color: #c678dd; line-height: 26px;\">class<\/span>))<\/span>;\n<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0employeeDatasetFlatmap.show();<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+---+----------+--------+------+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|age|department|\u00a0\u00a0\u00a0level|\u00a0\u00a0name|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+---+----------+--------+------+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a020|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u00a0\u00a0\u5f20\u4e09|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a020|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u5f20\u4e09_2|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a031|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u00a0\u00a0\u674e\u56db|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a031|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u674e\u56db_2|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a036|\u00a0\u00a0\u00a0\u00a0\u8d22\u52a1\u90e8|\u666e\u901a\u5458\u5de5|\u00a0\u00a0\u674e\u4e3d|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a036|\u00a0\u00a0\u00a0\u00a0\u8d22\u52a1\u90e8|\u666e\u901a\u5458\u5de5|\u674e\u4e3d_2|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a038|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u00a0\u00a0\u00a0\u00a0\u7ecf\u7406|\u00a0\u00a0\u5f20\u4f1f|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a038|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u00a0\u00a0\u00a0\u00a0\u7ecf\u7406|\u5f20\u4f1f_2|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a025|\u00a0\u00a0\u00a0\u00a0\u4eba\u4e8b\u90e8|\u666e\u901a\u5458\u5de5|\u00a0\u00a0\u675c\u822a|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a025|\u00a0\u00a0\u00a0\u00a0\u4eba\u4e8b\u90e8|\u666e\u901a\u5458\u5de5|\u675c\u822a_2|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a028|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u00a0\u00a0\u5468\u6b4c|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a028|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u5468\u6b4c_2|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+---+----------+--------+------+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\/<\/span>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0RelationalGroupedDataset\u00a0datasetGroupBy\u00a0=\u00a0employeeDataset.groupBy(<span style=\"color: #98c379; line-height: 26px;\">\"department\"<\/span>);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0\u7edf\u8ba1\u6bcf\u4e2a\u90e8\u95e8\u6709\u591a\u5c11\u5458\u5de5<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0datasetGroupBy.count().show();<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+----------+-----+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|department|count|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+----------+-----+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a0\u00a0\u00a0\u00a0\u8d22\u52a1\u90e8|\u00a0\u00a0\u00a0\u00a01|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a0\u00a0\u00a0\u00a0\u4eba\u4e8b\u90e8|\u00a0\u00a0\u00a0\u00a01|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u00a0\u00a0\u00a0\u00a04|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+----------+-----+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0\u6bcf\u4e2a\u90e8\u95e8\u7684\u5e73\u5747\u5e74\u9f84\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0datasetGroupBy.avg(\"age\").withColumnRenamed(\"avg(age)\",\"avgAge\").show();<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+----------+--------+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|department|avg(age)|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+----------+--------+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a0\u00a0\u00a0\u00a0\u8d22\u52a1\u90e8|\u00a0\u00a0\u00a0\u00a036.0|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a0\u00a0\u00a0\u00a0\u4eba\u4e8b\u90e8|\u00a0\u00a0\u00a0\u00a025.0|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u00a0\u00a0\u00a029.25|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+----------+--------+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\/<\/span>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0KeyValueGroupedDataset\u00a0keyValueGroupedDataset\u00a0=\u00a0employeeDataset.groupByKey(<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0MapFunction&lt;Employee,\u00a0String&gt;()\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@Override<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\"><span style=\"color: #c678dd; line-height: 26px;\">public<\/span>\u00a0String\u00a0<span style=\"color: #61aeee; line-height: 26px;\">call<\/span><span style=\"line-height: 26px;\">(Employee\u00a0employee)<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">throws<\/span>\u00a0Exception\u00a0<\/span>{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0\u8fd4\u56de\u5206\u7ec4\u7684key,\u8fd9\u91cc\u8868\u793a\u6839\u636e\u90e8\u95e8\u8fdb\u884c\u5206\u7ec4<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">return<\/span>\u00a0employee.getDepartment();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\u00a0Encoders.STRING());\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0keyValueGroupedDataset.mapGroups(<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0MapGroupsFunction()\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@Override<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\"><span style=\"color: #c678dd; line-height: 26px;\">public<\/span>\u00a0Object\u00a0<span style=\"color: #61aeee; line-height: 26px;\">call<\/span><span style=\"line-height: 26px;\">(Object\u00a0key,\u00a0Iterator\u00a0iterator)<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">throws<\/span>\u00a0Exception\u00a0<\/span>{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(<span style=\"color: #98c379; line-height: 26px;\">\"key\u00a0=\u00a0\"<\/span>\u00a0+\u00a0key);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">while<\/span>\u00a0(iterator.hasNext()){\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(iterator.next());\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">return<\/span>\u00a0iterator;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0key\u00a0=\u00a0\u4eba\u4e8b\u90e8\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0SparkDemo.Employee(name=\u675c\u822a,\u00a0age=25,\u00a0department=\u4eba\u4e8b\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0key\u00a0=\u00a0\u7814\u53d1\u90e8\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0SparkDemo.Employee(name=\u5f20\u4e09,\u00a0age=20,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0SparkDemo.Employee(name=\u674e\u56db,\u00a0age=31,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0SparkDemo.Employee(name=\u5f20\u4f1f,\u00a0age=38,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u7ecf\u7406)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0SparkDemo.Employee(name=\u5468\u6b4c,\u00a0age=28,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0key\u00a0=\u00a0\u8d22\u52a1\u90e8\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0SparkDemo.Employee(name=\u674e\u4e3d,\u00a0age=36,\u00a0department=\u8d22\u52a1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\u00a0Encoders.bean(Iterator<span style=\"line-height: 26px;\">.<span style=\"color: #c678dd; line-height: 26px;\">class<\/span>))\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.<span style=\"color: #e6c07b; line-height: 26px;\">show<\/span>()<\/span>;\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0\u8fd9\u91cc\u7684show()\u6ca1\u6709\u610f\u4e49\uff0c\u53ea\u662f\u89e6\u53d1\u8ba1\u7b97\u800c\u5df2<\/span>\n\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Employee\u00a0datasetReduce\u00a0=\u00a0employeeDataset.reduce(<span style=\"color: #c678dd; line-height: 26px;\">new<\/span>\u00a0ReduceFunction&lt;Employee&gt;()\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@Override<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\"><span style=\"color: #c678dd; line-height: 26px;\">public<\/span>\u00a0Employee\u00a0<span style=\"color: #61aeee; line-height: 26px;\">call<\/span><span style=\"line-height: 26px;\">(Employee\u00a0t1,\u00a0Employee\u00a0t2)<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">throws<\/span>\u00a0Exception\u00a0<\/span>{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0\u4e0d\u540c\u7684\u7248\u672c\u770b\u662f\u5426\u9700\u8981\u5224\u65adt1\u00a0==\u00a0null<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0t2.setAge(t1.getAge()\u00a0+\u00a0t2.getAge());\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">return<\/span>\u00a0t2;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(datasetReduce);\n\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Employee\u00a0employee\u00a0=\u00a0employeeDataset.filter(<span style=\"color: #98c379; line-height: 26px;\">\"age\u00a0&gt;\u00a030\"<\/span>).limit(<span style=\"color: #d19a66; line-height: 26px;\">3<\/span>).sort(<span style=\"color: #98c379; line-height: 26px;\">\"age\"<\/span>).first();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.out.println(employee);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/\/\u00a0SparkDemo.Employee(name=\u674e\u56db,\u00a0age=31,\u00a0department=\u7814\u53d1\u90e8,\u00a0level=\u666e\u901a\u5458\u5de5)<\/span>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0employeeDataset.registerTempTable(<span style=\"color: #98c379; line-height: 26px;\">\"table\"<\/span>);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0session.sql(<span style=\"color: #98c379; line-height: 26px;\">\"select\u00a0*\u00a0from\u00a0table\u00a0where\u00a0age\u00a0&gt;\u00a030\u00a0order\u00a0by\u00a0age\u00a0desc\u00a0limit\u00a03\"<\/span>).show();\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+---+----------+--------+----+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|age|department|\u00a0\u00a0\u00a0level|name|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+---+----------+--------+----+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a038|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u00a0\u00a0\u00a0\u00a0\u7ecf\u7406|\u5f20\u4f1f|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a036|\u00a0\u00a0\u00a0\u00a0\u8d22\u52a1\u90e8|\u666e\u901a\u5458\u5de5|\u674e\u4e3d|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0|\u00a031|\u00a0\u00a0\u00a0\u00a0\u7814\u53d1\u90e8|\u666e\u901a\u5458\u5de5|\u674e\u56db|\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\u00a0+---+----------+--------+----+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0*\/<\/span>\n\n\n\u00a0\u00a0\u00a0\u00a0}\n\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@Getter<\/span>\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@Setter<\/span>\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@AllArgsConstructor<\/span>\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@NoArgsConstructor<\/span>\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #61aeee; line-height: 26px;\">@ToString<\/span>\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">public<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">static<\/span>\u00a0<span style=\"line-height: 26px;\"><span style=\"color: #c678dd; line-height: 26px;\">class<\/span>\u00a0<span style=\"color: #e6c07b; line-height: 26px;\">Employee<\/span>\u00a0<span style=\"color: #c678dd; line-height: 26px;\">implements<\/span>\u00a0<span style=\"color: #e6c07b; line-height: 26px;\">Serializable<\/span>\u00a0<\/span>{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">private<\/span>\u00a0String\u00a0name;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">private<\/span>\u00a0Integer\u00a0age;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">private<\/span>\u00a0String\u00a0department;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #c678dd; line-height: 26px;\">private<\/span>\u00a0String\u00a0level;\n\u00a0\u00a0\u00a0\u00a0}\n}\n<\/code><\/pre>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">spark maven\u4f9d\u8d56,\u81ea\u884c\u4e0d\u9700\u8981\u7684spark-streaming\uff0ckafka\u4f9d\u8d56\u53bb\u6389\u3002<\/p>\n<p style=\"padding-top: 8px; padding-bottom: 8px; line-height: 26px; margin-top: 10px; margin-bottom: 10px; font-size: 14px; word-spacing: 2px;\">\u70b9\u51fb\u67e5\u770b\u4ee3\u7801<\/p>\n<pre style=\"margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;\"><code style=\"overflow-x: auto; padding: 16px; color: #abb2bf; display: -webkit-box; font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; font-size: 12px; -webkit-overflow-scrolling: touch; letter-spacing: 0px; padding-top: 15px; background: #282c34; border-radius: 5px;\"><span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">properties<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">maven.compiler.source<\/span>&gt;<\/span>8<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">maven.compiler.source<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">maven.compiler.target<\/span>&gt;<\/span>8<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">maven.compiler.target<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">maven.compiler.source<\/span>&gt;<\/span>1.8<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">maven.compiler.source<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">maven.compiler.target<\/span>&gt;<\/span>1.8<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">maven.compiler.target<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">scala.version<\/span>&gt;<\/span>2.12.15<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">scala.version<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">spark.version<\/span>&gt;<\/span>3.2.0<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">spark.version<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">encoding<\/span>&gt;<\/span>UTF-8<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">encoding<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">properties<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">dependencies<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">&lt;!--\u00a0scala\u4f9d\u8d56--&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">dependency<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">groupId<\/span>&gt;<\/span>org.scala-lang<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">groupId<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">artifactId<\/span>&gt;<\/span>scala-library<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">artifactId<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">version<\/span>&gt;<\/span>${scala.version}<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">version<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">dependency<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">&lt;!--\u00a0spark\u4f9d\u8d56--&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">dependency<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">groupId<\/span>&gt;<\/span>org.apache.spark<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">groupId<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">artifactId<\/span>&gt;<\/span>spark-sql_2.12<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">artifactId<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">version<\/span>&gt;<\/span>${spark.version}<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">version<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">dependency<\/span>&gt;<\/span>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">dependency<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">groupId<\/span>&gt;<\/span>org.projectlombok<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">groupId<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">artifactId<\/span>&gt;<\/span>lombok<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">artifactId<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">version<\/span>&gt;<\/span>1.18.2<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">version<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">scope<\/span>&gt;<\/span>provided<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">scope<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">dependency<\/span>&gt;<\/span>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5c6370; font-style: italic; line-height: 26px;\">&lt;!--&lt;dependency&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;groupId&gt;org.apache.spark&lt;\/groupId&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;artifactId&gt;spark-streaming-kafka-0-10_2.12&lt;\/artifactId&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;version&gt;${spark.version}&lt;\/version&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/dependency&gt;--&gt;<\/span>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">dependency<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">groupId<\/span>&gt;<\/span>org.apache.spark<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">groupId<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">artifactId<\/span>&gt;<\/span>spark-sql-kafka-0-10_2.12<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">artifactId<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">version<\/span>&gt;<\/span>${spark.version}<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">version<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">dependency<\/span>&gt;<\/span>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">dependency<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">groupId<\/span>&gt;<\/span>com.google.code.gson<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">groupId<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">artifactId<\/span>&gt;<\/span>gson<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">artifactId<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">version<\/span>&gt;<\/span>2.7<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">version<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">dependency<\/span>&gt;<\/span>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">dependency<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">groupId<\/span>&gt;<\/span>mysql<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">groupId<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">artifactId<\/span>&gt;<\/span>mysql-connector-java<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">artifactId<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;<span style=\"color: #e06c75; line-height: 26px;\">version<\/span>&gt;<\/span>5.1.34<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">version<\/span>&gt;<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">dependency<\/span>&gt;<\/span>\n\n\u00a0\u00a0\u00a0\u00a0<span style=\"line-height: 26px;\">&lt;\/<span style=\"color: #e06c75; line-height: 26px;\">dependencies<\/span>&gt;<\/span>\n<\/code><\/pre>\n<\/section>\n<p style=\"text-align: center;\">\n<p style=\"display: none;\">\n<blockquote class=\"keep-source\"><p>\u539f\u6587\u59cb\u53d1\u4e8e\u5fae\u4fe1\u516c\u4f17\u53f7\uff08\u4e1a\u4f59\u8349\uff09\uff1a<a href=\"http:\/\/mp.weixin.qq.com\/s\/gxL2j73ShEXrpmm024dYAw\" target=\"_blank\" rel=\"noopener\" rel=\"nofollow\" >\u4f1astream\u6d41\u5c31\u4f1a\u5927\u6570\u636e\uff01<\/a><\/p><\/blockquote>\n<\/div>\n","raw":"","protected":false},"excerpt":{"rendered":"<p>\u4f60\u77e5\u9053\u7684\u8d8a\u591a\uff0c\u4e0d\u77e5\u9053\u7684\u5c31\u8d8a\u591a\uff0c\u4e1a\u4f59\u7684\u50cf\u4e00\u68f5\u5c0f\u8349\uff01 \u4f60\u6765\uff0c\u6211\u4eec\u4e00\u8d77\u7cbe\u8fdb\uff01\u4f60\u4e0d\u6765\uff0c\u6211\u548c\u4f60\u7684\u7ade\u4e89\u5bf9\u624b\u4e00\u8d77\u7cbe\u8fdb\uff01 \u7f16\u8f91\uff1a\u4e1a\u4f59\u8349 \u6765\u6e90\uff1aju &#8230;<\/p>\n","protected":false},"author":1,"featured_media":185,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"emotion":"","emotion_color":"","title_style":"","license":"","footnotes":""},"categories":[2],"tags":[],"class_list":["post-184","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java"],"post_thumbnail_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2023\/05\/20230522143802968-150x150.jpeg","content_first_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2023\/05\/20230522143804609.png","post_medium_image_300":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2023\/05\/20230522143802968-300x128.jpeg","post_thumbnail_image_624":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2023\/05\/20230522143802968.jpeg","post_frist_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2023\/05\/20230522143804609.png","post_medium_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2023\/05\/20230522143802968-300x128.jpeg","post_large_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2023\/05\/20230522143802968.jpeg","post_full_image":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2023\/05\/20230522143802968.jpeg","post_all_images":[{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2023\/05\/20230522143804609.png","id":"image0"},{"imagesurl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2023\/05\/20230522143804609.png","id":"image1"}],"videoAdId":"","listAd":"0","listAdId":"","listAdEvery":6,"total_comments":0,"category_name":"Java","post_date":"2023-05-22","like_count":"0","praiseWord":"\u9f13\u52b1","copyright_state":"","excitationAd":"0","rewardedVideoAdId":"","detailAdId":"","detailAd":"0","enterpriseMinapp":"0","audios":[],"postImageUrl":"https:\/\/wp-moto-1258805347.cos.ap-shanghai.myqcloud.com\/2023\/05\/20230519082947553.jpg","avatarurls":[],"related_posts":null,"pageviews":287,"next_post_id":193,"next_post_title":"\u4f60\u89c1\u8fc7\u54ea\u4e9b\u4f18\u96c5\u7684 Java \u4ee3\u7801\u4f18\u5316\u6280\u5de7\uff1f","previous_post_id":171,"previous_post_title":"\u4e5d\u79cd\u5206\u5e03\u5f0fID\u89e3\u51b3\u65b9\u6848\uff0c\u603b\u6709\u4e00\u6b3e\u9002\u5408\u4f60\uff01","_links":{"self":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/posts\/184","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/comments?post=184"}],"version-history":[{"count":0,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/posts\/184\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/media\/185"}],"wp:attachment":[{"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/media?parent=184"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/categories?post=184"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xinchewhd.com.cn\/index.php\/wp-json\/wp\/v2\/tags?post=184"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}