{"id":115229,"date":"2026-10-11T14:33:24","date_gmt":"2026-10-11T06:33:24","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/115229.html"},"modified":"2026-10-11T14:33:24","modified_gmt":"2026-10-11T06:33:24","slug":"%e3%80%902027%e5%a4%a7%e6%95%b0%e6%8d%ae%e6%af%95%e8%ae%be%e3%80%91%e5%9f%ba%e4%ba%8e%e5%a4%a7%e6%95%b0%e6%8d%ae%e7%9a%84%e5%a4%9a%e6%ba%90%e5%bd%b1%e8%a7%86%e6%95%b0%e6%8d%ae%e6%95%b4%e5%90%88","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/115229.html","title":{"rendered":"\u30102027\u5927\u6570\u636e\u6bd5\u8bbe\u3011\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790 \uff08\u9644\u6e90\u7801\u8d44\u6599\uff09\u6570\u636e\u5206\u6790\uff0c\u53ef\u89c6\u5316\u5927\u5c4f_\u6bd5\u8bbe\u9009\u9898\u63a8\u8350_\u5927\u6570\u636e\u9879\u76ee_\u6570\u636e\u6316\u6398\u7b97\u6cd5"},"content":{"rendered":"<p>&#x1f496;&#x1f496;\u4f5c\u8005&#xff1a;\u8ba1\u7b97\u673a\u6bd5\u4e1a\u8bbe\u8ba1\u6c5f\u633d &#x1f499;&#x1f499;\u4e2a\u4eba\u7b80\u4ecb&#xff1a;\u66fe\u957f\u671f\u4ece\u4e8b\u8ba1\u7b97\u673a\u4e13\u4e1a\u57f9\u8bad\u6559\u5b66&#xff0c;\u672c\u4eba\u4e5f\u70ed\u7231\u4e0a\u8bfe\u6559\u5b66&#xff0c;\u8bed\u8a00\u64c5\u957fJava\u3001\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u3001Python\u3001Golang\u3001\u5b89\u5353Android\u7b49&#xff0c;\u5f00\u53d1\u9879\u76ee\u5305\u62ec\u5927\u6570\u636e\u3001\u6df1\u5ea6\u5b66\u4e60\u3001\u7f51\u7ad9\u3001\u5c0f\u7a0b\u5e8f\u3001\u5b89\u5353\u3001\u7b97\u6cd5\u3002\u5e73\u5e38\u4f1a\u505a\u4e00\u4e9b\u9879\u76ee\u5b9a\u5236\u5316\u5f00\u53d1\u3001\u4ee3\u7801\u8bb2\u89e3\u3001\u7b54\u8fa9\u6559\u5b66\u3001\u6587\u6863\u7f16\u5199\u3001\u4e5f\u61c2\u4e00\u4e9b\u964d\u91cd\u65b9\u9762\u7684\u6280\u5de7\u3002\u5e73\u5e38\u559c\u6b22\u5206\u4eab\u4e00\u4e9b\u81ea\u5df1\u5f00\u53d1\u4e2d\u9047\u5230\u7684\u95ee\u9898\u7684\u89e3\u51b3\u529e\u6cd5&#xff0c;\u4e5f\u559c\u6b22\u4ea4\u6d41\u6280\u672f&#xff0c;\u5927\u5bb6\u6709\u6280\u672f\u4ee3\u7801\u8fd9\u4e00\u5757\u7684\u95ee\u9898\u53ef\u4ee5\u95ee\u6211&#xff01; &#x1f49b;&#x1f49b;\u60f3\u8bf4\u7684\u8bdd&#xff1a;\u611f\u8c22\u5927\u5bb6\u7684\u5173\u6ce8\u4e0e\u652f\u6301&#xff01; &#x1f49c;&#x1f49c; \u7f51\u7ad9\u5b9e\u6218\u9879\u76ee \u5b89\u5353\/\u5c0f\u7a0b\u5e8f\u5b9e\u6218\u9879\u76ee \u5927\u6570\u636e\u5b9e\u6218\u9879\u76ee \u6df1\u5ea6\u5b66\u4e60\u5b9e\u6218\u9879\u76ee<\/p>\n<\/p>\n<h4>\u76ee\u5f55<\/h4>\n<ul>\n<li>\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790\u4ecb\u7ecd<\/li>\n<li>\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790\u6f14\u793a\u89c6\u9891<\/li>\n<li>\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790\u6f14\u793a\u56fe\u7247<\/li>\n<li>\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790\u4ee3\u7801\u5c55\u793a<\/li>\n<li>\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790\u6587\u6863\u5c55\u793a<\/li>\n<\/ul>\n<h2>\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790\u4ecb\u7ecd<\/h2>\n<p>\u672c\u7cfb\u7edf\u300a\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790\u300b\u662f\u4e00\u4e2a\u9762\u5411Netflix\u5f71\u89c6\u76ee\u5f55\u6570\u636e\u7684\u5927\u6570\u636e\u5206\u6790\u5e73\u53f0&#xff0c;\u4f9d\u6258Hadoop\u5206\u5e03\u5f0f\u5b58\u50a8\u4e0eSpark\u5e76\u884c\u8ba1\u7b97\u6846\u67b6&#xff0c;\u5bf9\u591a\u6e90\u5f02\u6784\u7684\u5f71\u89c6\u6570\u636e\u8fdb\u884cETL\u6e05\u6d17\u3001\u6574\u5408\u4e0e\u8d28\u91cf\u8bc4\u4f30\u3002\u7cfb\u7edf\u6838\u5fc3\u80fd\u529b\u6db5\u76d6\u4e09\u4e2a\u65b9\u9762&#xff1a;\u4e00\u662f\u6570\u636e\u6574\u5408\u5c42&#xff0c;\u901a\u8fc7Spark SQL\u5bf9\u591a\u5f20\u539f\u59cb\u5f71\u89c6\u8868\u8fdb\u884c\u5b57\u6bb5\u6620\u5c04\u3001\u53bb\u91cd\u3001\u7a7a\u503c\u586b\u5145\u4e0e\u683c\u5f0f\u7edf\u4e00&#xff0c;\u5f62\u6210\u6807\u51c6\u5316\u7684\u4e8b\u5b9e\u6570\u636e\u5bbd\u8868&#xff1b;\u4e8c\u662f\u8d28\u91cf\u8bc4\u4f30\u5c42&#xff0c;\u4ece\u5b8c\u6574\u6027&#xff08;\u5b57\u6bb5\u7f3a\u5931\u7387&#xff09;\u3001\u4e00\u81f4\u6027&#xff08;\u540c\u4e00\u5f71\u89c6\u5728\u4e0d\u540c\u6e90\u4e2d\u7684\u4fe1\u606f\u5339\u914d\u5ea6&#xff09;\u3001\u51c6\u786e\u6027&#xff08;\u6570\u503c\u5b57\u6bb5\u7684\u5408\u6cd5\u8303\u56f4\u6821\u9a8c&#xff09;\u3001\u65f6\u6548\u6027&#xff08;\u6570\u636e\u66f4\u65b0\u65f6\u95f4\u6233&#xff09;\u548c\u552f\u4e00\u6027&#xff08;\u91cd\u590d\u8bb0\u5f55\u5360\u6bd4&#xff09;\u4e94\u4e2a\u7ef4\u5ea6\u6784\u5efa\u52a0\u6743\u8bc4\u5206\u6a21\u578b&#xff0c;\u5bf9\u6bcf\u4e00\u6761\u5f71\u89c6\u8bb0\u5f55\u8f93\u51fa0-100\u5206\u7684\u7efc\u5408\u8d28\u91cf\u8bc4\u5206&#xff1b;\u4e09\u662f\u53ef\u89c6\u5316\u5206\u6790\u5c42&#xff0c;\u57fa\u4e8eECharts\u6784\u5efa9\u5f20\u5b9e\u65f6\u8054\u52a8\u56fe\u8868&#xff0c;\u5305\u62ec\u7247\u79cd\u7ed3\u6784\u997c\u56fe\u3001\u56fd\u5bb6\u5206\u5e03\u5730\u56fe\u3001\u70ed\u5ea6\u8bc4\u5206\u6563\u70b9\u56fe\u3001\u8bc4\u5206\u6863\u4f4d\u67f1\u72b6\u56fe\u3001\u8d28\u91cf\u805a\u7c7b\u96f7\u8fbe\u56fe\u3001\u5b57\u6bb5\u8986\u76d6\u70ed\u529b\u56fe\u3001\u5339\u914d\u65b9\u5f0f\u6851\u57fa\u56fe\u3001\u7c7b\u578b\u5171\u73b0\u5f26\u56fe\u4ee5\u53ca\u8d28\u91cf\u8d8b\u52bf\u6298\u7ebf\u56fe&#xff0c;\u5355\u5c4f\u603b\u89c8\u5f71\u89c6\u6570\u636e\u8d28\u91cf\u6001\u52bf\u3002\u7cfb\u7edf\u540c\u65f6\u63d0\u4f9b\u6570\u636e\u7ba1\u7406\u6a21\u5757&#xff0c;\u652f\u6301\u5bf9\u539f\u59cb\u76ee\u5f55\u6570\u636e\u7684\u6761\u4ef6\u68c0\u7d22\u3001\u5206\u9875\u5c55\u793a\u548c\u624b\u52a8\u4fee\u6b63&#xff0c;\u5f62\u6210\u201c\u6570\u636e\u63a5\u5165\u2192\u8d28\u91cf\u8bc4\u4f30\u2192\u53ef\u89c6\u5316\u5448\u73b0\u2192\u4eba\u5de5\u5e72\u9884\u201d\u7684\u95ed\u73af\u6d41\u7a0b&#xff0c;\u4e3a\u5f71\u89c6\u6570\u636e\u6cbb\u7406\u63d0\u4f9b\u53ef\u843d\u5730\u7684\u6280\u672f\u53c2\u8003\u65b9\u6848\u3002<\/p>\n<h2>\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790\u6f14\u793a\u89c6\u9891<\/h2>\n<p>xxx<\/p>\n<h2>\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790\u6f14\u793a\u56fe\u7247<\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261011063317-6acb2dadee229.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/> <img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261011063318-6acb2dae8dca5.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/> <img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261011063319-6acb2daf28272.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/> <img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261011063319-6acb2dafb1af4.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/> <img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261011063320-6acb2db056570.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/> <img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261011063320-6acb2db0e2171.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/> <img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261011063321-6acb2db1930b7.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/> <img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261011063322-6acb2db22d76b.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><\/p>\n<h2>\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790\u4ee3\u7801\u5c55\u793a<\/h2>\n<p>SparkSession spark <span class=\"token operator\">&#061;<\/span> SparkSession<span class=\"token punctuation\">.<\/span>builder<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>appName<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;FilmDataQualityAssessment&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>master<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;local[*]&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>config<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;spark.sql.shuffle.partitions&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;200&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>getOrCreate<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> netflixDf <span class=\"token operator\">&#061;<\/span> spark<span class=\"token punctuation\">.<\/span>read<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;header&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;true&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;inferSchema&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;true&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>csv<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;hdfs:\/\/master:9000\/data\/netflix_titles.csv&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> imdbDf <span class=\"token operator\">&#061;<\/span> spark<span class=\"token punctuation\">.<\/span>read<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;header&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;true&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;inferSchema&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;true&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>csv<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;hdfs:\/\/master:9000\/data\/imdb_ratings.csv&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> tmdbDf <span class=\"token operator\">&#061;<\/span> spark<span class=\"token punctuation\">.<\/span>read<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;header&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;true&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;inferSchema&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;true&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>json<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;hdfs:\/\/master:9000\/data\/tmdb_metadata.json&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> integratedDf <span class=\"token operator\">&#061;<\/span> netflixDf<span class=\"token punctuation\">.<\/span>join<span class=\"token punctuation\">(<\/span>imdbDf<span class=\"token punctuation\">,<\/span> netflixDf<span class=\"token punctuation\">.<\/span>col<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;title&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>equalTo<span class=\"token punctuation\">(<\/span>imdbDf<span class=\"token punctuation\">.<\/span>col<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;original_title&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;left&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>join<span class=\"token punctuation\">(<\/span>tmdbDf<span class=\"token punctuation\">,<\/span> netflixDf<span class=\"token punctuation\">.<\/span>col<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;title&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>equalTo<span class=\"token punctuation\">(<\/span>tmdbDf<span class=\"token punctuation\">.<\/span>col<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;name&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;left&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> cleanedDf <span class=\"token operator\">&#061;<\/span> integratedDf<span class=\"token punctuation\">.<\/span>na<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>fill<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;unknown&#034;<\/span><span class=\"token punctuation\">,<\/span> new String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;director&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;cast&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;country&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;rating&#034;<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>na<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>fill<span class=\"token punctuation\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> new String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;release_year&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;duration_num&#034;<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>na<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>fill<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;N\/A&#034;<\/span><span class=\"token punctuation\">,<\/span> new String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;listed_in&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;description&#034;<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> dedupDf <span class=\"token operator\">&#061;<\/span> cleanedDf<span class=\"token punctuation\">.<\/span>dropDuplicates<span class=\"token punctuation\">(<\/span>new String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;title&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;release_year&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;director&#034;<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nStructType schema <span class=\"token operator\">&#061;<\/span> dedupDf<span class=\"token punctuation\">.<\/span>schema<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nString<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> fieldNames <span class=\"token operator\">&#061;<\/span> schema<span class=\"token punctuation\">.<\/span>fieldNames<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\ndouble totalFields <span class=\"token operator\">&#061;<\/span> fieldNames<span class=\"token punctuation\">.<\/span>length<span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> completenessScore <span class=\"token operator\">&#061;<\/span> dedupDf<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">map<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span>Row row<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token punctuation\">{<\/span> <span class=\"token builtin\">int<\/span> nonNullCount <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span>String field <span class=\"token punctuation\">:<\/span> fieldNames<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> Object value <span class=\"token operator\">&#061;<\/span> row<span class=\"token punctuation\">.<\/span>getAs<span class=\"token punctuation\">(<\/span>field<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>value <span class=\"token operator\">!&#061;<\/span> null <span class=\"token operator\">&amp;<\/span><span class=\"token operator\">&amp;<\/span> !value<span class=\"token punctuation\">.<\/span>toString<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>isEmpty<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&amp;<\/span><span class=\"token operator\">&amp;<\/span> !value<span class=\"token punctuation\">.<\/span>toString<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>equals<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;unknown&#034;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&amp;<\/span><span class=\"token operator\">&amp;<\/span> !value<span class=\"token punctuation\">.<\/span>toString<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>equals<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;N\/A&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> nonNullCount<span class=\"token operator\">&#043;<\/span><span class=\"token operator\">&#043;<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span> <span class=\"token punctuation\">}<\/span> double score <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span>nonNullCount <span class=\"token operator\">\/<\/span> totalFields<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">100<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">return<\/span> RowFactory<span class=\"token punctuation\">.<\/span>create<span class=\"token punctuation\">(<\/span>row<span class=\"token punctuation\">.<\/span>getAs<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;title&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">round<\/span><span class=\"token punctuation\">(<\/span>score <span class=\"token operator\">*<\/span> <span class=\"token number\">100.0<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">100.0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span> RowEncoder<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">apply<\/span><span class=\"token punctuation\">(<\/span>StructType<span class=\"token punctuation\">.<\/span>fromDDL<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;title string, completeness double&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> consistencyScore <span class=\"token operator\">&#061;<\/span> dedupDf<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">map<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span>Row row<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token punctuation\">{<\/span> String netflixGenre <span class=\"token operator\">&#061;<\/span> row<span class=\"token punctuation\">.<\/span>getAs<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;listed_in&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> String tmdbGenre <span class=\"token operator\">&#061;<\/span> row<span class=\"token punctuation\">.<\/span>getAs<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;genres&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> double score <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0.0<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>netflixGenre <span class=\"token operator\">!&#061;<\/span> null <span class=\"token operator\">&amp;<\/span><span class=\"token operator\">&amp;<\/span> tmdbGenre <span class=\"token operator\">!&#061;<\/span> null <span class=\"token operator\">&amp;<\/span><span class=\"token operator\">&amp;<\/span> !netflixGenre<span class=\"token punctuation\">.<\/span>equals<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;N\/A&#034;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&amp;<\/span><span class=\"token operator\">&amp;<\/span> !tmdbGenre<span class=\"token punctuation\">.<\/span>equals<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;unknown&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> netflixArr <span class=\"token operator\">&#061;<\/span> netflixGenre<span class=\"token punctuation\">.<\/span>split<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;,&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> String<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span> tmdbArr <span class=\"token operator\">&#061;<\/span> tmdbGenre<span class=\"token punctuation\">.<\/span>split<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;,&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token builtin\">int<\/span> matchCount <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span>String n <span class=\"token punctuation\">:<\/span> netflixArr<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span>String t <span class=\"token punctuation\">:<\/span> tmdbArr<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>n<span class=\"token punctuation\">.<\/span>trim<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>equalsIgnoreCase<span class=\"token punctuation\">(<\/span>t<span class=\"token punctuation\">.<\/span>trim<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> matchCount<span class=\"token operator\">&#043;<\/span><span class=\"token operator\">&#043;<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">break<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span> <span class=\"token punctuation\">}<\/span> <span class=\"token punctuation\">}<\/span> score <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span>matchCount <span class=\"token operator\">\/<\/span> <span class=\"token punctuation\">(<\/span>double<span class=\"token punctuation\">)<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">max<\/span><span class=\"token punctuation\">(<\/span>netflixArr<span class=\"token punctuation\">.<\/span>length<span class=\"token punctuation\">,<\/span> tmdbArr<span class=\"token punctuation\">.<\/span>length<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">100<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">return<\/span> RowFactory<span class=\"token punctuation\">.<\/span>create<span class=\"token punctuation\">(<\/span>row<span class=\"token punctuation\">.<\/span>getAs<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;title&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">round<\/span><span class=\"token punctuation\">(<\/span>score <span class=\"token operator\">*<\/span> <span class=\"token number\">100.0<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">100.0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span> RowEncoder<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">apply<\/span><span class=\"token punctuation\">(<\/span>StructType<span class=\"token punctuation\">.<\/span>fromDDL<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;title string, consistency double&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> accuracyScore <span class=\"token operator\">&#061;<\/span> dedupDf<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">map<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span>Row row<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token punctuation\">{<\/span> Integer year <span class=\"token operator\">&#061;<\/span> row<span class=\"token punctuation\">.<\/span>getAs<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;release_year&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> Double duration <span class=\"token operator\">&#061;<\/span> row<span class=\"token punctuation\">.<\/span>getAs<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;duration_num&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> Integer imdbVotes <span class=\"token operator\">&#061;<\/span> row<span class=\"token punctuation\">.<\/span>getAs<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;imdb_votes&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> double score <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">100.0<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>year <span class=\"token operator\">!&#061;<\/span> null <span class=\"token operator\">&amp;<\/span><span class=\"token operator\">&amp;<\/span> <span class=\"token punctuation\">(<\/span>year <span class=\"token operator\">&lt;<\/span> <span class=\"token number\">1900<\/span> <span class=\"token operator\">|<\/span><span class=\"token operator\">|<\/span> year <span class=\"token operator\">&gt;<\/span> <span class=\"token number\">2026<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> score <span class=\"token operator\">-&#061;<\/span> <span class=\"token number\">25<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>duration <span class=\"token operator\">!&#061;<\/span> null <span class=\"token operator\">&amp;<\/span><span class=\"token operator\">&amp;<\/span> <span class=\"token punctuation\">(<\/span>duration <span class=\"token operator\">&lt;&#061;<\/span> <span class=\"token number\">0<\/span> <span class=\"token operator\">|<\/span><span class=\"token operator\">|<\/span> duration <span class=\"token operator\">&gt;<\/span> <span class=\"token number\">500<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> score <span class=\"token operator\">-&#061;<\/span> <span class=\"token number\">25<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>imdbVotes <span class=\"token operator\">!&#061;<\/span> null <span class=\"token operator\">&amp;<\/span><span class=\"token operator\">&amp;<\/span> imdbVotes <span class=\"token operator\">&lt;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> score <span class=\"token operator\">-&#061;<\/span> <span class=\"token number\">25<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span> String rating <span class=\"token operator\">&#061;<\/span> row<span class=\"token punctuation\">.<\/span>getAs<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;rating&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>rating <span class=\"token operator\">!&#061;<\/span> null <span class=\"token operator\">&amp;<\/span><span class=\"token operator\">&amp;<\/span> !rating<span class=\"token punctuation\">.<\/span>equals<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;N\/A&#034;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&amp;<\/span><span class=\"token operator\">&amp;<\/span> !rating<span class=\"token punctuation\">.<\/span>equals<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;unknown&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>!rating<span class=\"token punctuation\">.<\/span>matches<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;^(G|PG|PG-13|R|NC-17|TV-Y|TV-Y7|TV-G|TV-PG|TV-14|TV-MA)$&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> score <span class=\"token operator\">-&#061;<\/span> <span class=\"token number\">25<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span> <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">return<\/span> RowFactory<span class=\"token punctuation\">.<\/span>create<span class=\"token punctuation\">(<\/span>row<span class=\"token punctuation\">.<\/span>getAs<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;title&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">max<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">round<\/span><span class=\"token punctuation\">(<\/span>score <span class=\"token operator\">*<\/span> <span class=\"token number\">100.0<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">100.0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span> RowEncoder<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">apply<\/span><span class=\"token punctuation\">(<\/span>StructType<span class=\"token punctuation\">.<\/span>fromDDL<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;title string, accuracy double&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> timelinessScore <span class=\"token operator\">&#061;<\/span> dedupDf<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">map<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span>Row row<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token punctuation\">{<\/span> String dateAdded <span class=\"token operator\">&#061;<\/span> row<span class=\"token punctuation\">.<\/span>getAs<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;date_added&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> double score <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">50.0<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>dateAdded <span class=\"token operator\">!&#061;<\/span> null <span class=\"token operator\">&amp;<\/span><span class=\"token operator\">&amp;<\/span> !dateAdded<span class=\"token punctuation\">.<\/span>equals<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;N\/A&#034;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&amp;<\/span><span class=\"token operator\">&amp;<\/span> !dateAdded<span class=\"token punctuation\">.<\/span>equals<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;unknown&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> <span class=\"token keyword\">try<\/span> <span class=\"token punctuation\">{<\/span> SimpleDateFormat sdf <span class=\"token operator\">&#061;<\/span> new SimpleDateFormat<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;MMMM d, yyyy&#034;<\/span><span class=\"token punctuation\">,<\/span> Locale<span class=\"token punctuation\">.<\/span>US<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> Date date <span class=\"token operator\">&#061;<\/span> sdf<span class=\"token punctuation\">.<\/span>parse<span class=\"token punctuation\">(<\/span>dateAdded<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> Date now <span class=\"token operator\">&#061;<\/span> new Date<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token builtin\">long<\/span> diff <span class=\"token operator\">&#061;<\/span> now<span class=\"token punctuation\">.<\/span>getTime<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span> date<span class=\"token punctuation\">.<\/span>getTime<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token builtin\">long<\/span> days <span class=\"token operator\">&#061;<\/span> diff <span class=\"token operator\">\/<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token number\">24<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">60<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">60<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">1000<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>days <span class=\"token operator\">&lt;&#061;<\/span> <span class=\"token number\">365<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> score <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">100.0<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>days <span class=\"token operator\">&lt;&#061;<\/span> <span class=\"token number\">730<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> score <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">75.0<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>days <span class=\"token operator\">&lt;&#061;<\/span> <span class=\"token number\">1095<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> score <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">50.0<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token punctuation\">{<\/span> score <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">25.0<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span> <span class=\"token punctuation\">}<\/span> catch <span class=\"token punctuation\">(<\/span>ParseException e<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> score <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">30.0<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span> <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">return<\/span> RowFactory<span class=\"token punctuation\">.<\/span>create<span class=\"token punctuation\">(<\/span>row<span class=\"token punctuation\">.<\/span>getAs<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;title&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> score<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span> RowEncoder<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">apply<\/span><span class=\"token punctuation\">(<\/span>StructType<span class=\"token punctuation\">.<\/span>fromDDL<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;title string, timeliness double&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> uniquenessScore <span class=\"token operator\">&#061;<\/span> dedupDf<span class=\"token punctuation\">.<\/span>groupBy<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;title&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;release_year&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>count<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>withColumnRenamed<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;count&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;duplicate_count&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> duplicateDf <span class=\"token operator\">&#061;<\/span> uniquenessScore<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">filter<\/span><span class=\"token punctuation\">(<\/span>uniquenessScore<span class=\"token punctuation\">.<\/span>col<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;duplicate_count&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>gt<span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nList<span class=\"token operator\">&lt;<\/span>String<span class=\"token operator\">&gt;<\/span> duplicateTitles <span class=\"token operator\">&#061;<\/span> duplicateDf<span class=\"token punctuation\">.<\/span>select<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;title&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token keyword\">as<\/span><span class=\"token punctuation\">(<\/span>Encoders<span class=\"token punctuation\">.<\/span>STRING<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>collectAsList<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> uniquenessScoreFinal <span class=\"token operator\">&#061;<\/span> dedupDf<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">map<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span>Row row<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token punctuation\">{<\/span> String title <span class=\"token operator\">&#061;<\/span> row<span class=\"token punctuation\">.<\/span>getAs<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;title&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> double score <span class=\"token operator\">&#061;<\/span> duplicateTitles<span class=\"token punctuation\">.<\/span>contains<span class=\"token punctuation\">(<\/span>title<span class=\"token punctuation\">)<\/span> ? <span class=\"token number\">60.0<\/span> <span class=\"token punctuation\">:<\/span> <span class=\"token number\">100.0<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">return<\/span> RowFactory<span class=\"token punctuation\">.<\/span>create<span class=\"token punctuation\">(<\/span>title<span class=\"token punctuation\">,<\/span> score<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span> RowEncoder<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">apply<\/span><span class=\"token punctuation\">(<\/span>StructType<span class=\"token punctuation\">.<\/span>fromDDL<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;title string, uniqueness double&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> qualityScores <span class=\"token operator\">&#061;<\/span> completenessScore<span class=\"token punctuation\">.<\/span>join<span class=\"token punctuation\">(<\/span>consistencyScore<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;title&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>join<span class=\"token punctuation\">(<\/span>accuracyScore<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;title&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>join<span class=\"token punctuation\">(<\/span>timelinessScore<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;title&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>join<span class=\"token punctuation\">(<\/span>uniquenessScoreFinal<span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;title&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> finalScore <span class=\"token operator\">&#061;<\/span> qualityScores<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">map<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span>Row row<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token punctuation\">{<\/span> String title <span class=\"token operator\">&#061;<\/span> row<span class=\"token punctuation\">.<\/span>getAs<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;title&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> double completeness <span class=\"token operator\">&#061;<\/span> row<span class=\"token punctuation\">.<\/span>getAs<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;completeness&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> double consistency <span class=\"token operator\">&#061;<\/span> row<span class=\"token punctuation\">.<\/span>getAs<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;consistency&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> double accuracy <span class=\"token operator\">&#061;<\/span> row<span class=\"token punctuation\">.<\/span>getAs<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;accuracy&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> double timeliness <span class=\"token operator\">&#061;<\/span> row<span class=\"token punctuation\">.<\/span>getAs<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;timeliness&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> double uniqueness <span class=\"token operator\">&#061;<\/span> row<span class=\"token punctuation\">.<\/span>getAs<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;uniqueness&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> double total <span class=\"token operator\">&#061;<\/span> completeness <span class=\"token operator\">*<\/span> <span class=\"token number\">0.25<\/span> <span class=\"token operator\">&#043;<\/span> consistency <span class=\"token operator\">*<\/span> <span class=\"token number\">0.25<\/span> <span class=\"token operator\">&#043;<\/span> accuracy <span class=\"token operator\">*<\/span> <span class=\"token number\">0.20<\/span> <span class=\"token operator\">&#043;<\/span> timeliness <span class=\"token operator\">*<\/span> <span class=\"token number\">0.15<\/span> <span class=\"token operator\">&#043;<\/span> uniqueness <span class=\"token operator\">*<\/span> <span class=\"token number\">0.15<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token keyword\">return<\/span> RowFactory<span class=\"token punctuation\">.<\/span>create<span class=\"token punctuation\">(<\/span>title<span class=\"token punctuation\">,<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">round<\/span><span class=\"token punctuation\">(<\/span>total <span class=\"token operator\">*<\/span> <span class=\"token number\">100.0<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">100.0<\/span><span class=\"token punctuation\">,<\/span> completeness<span class=\"token punctuation\">,<\/span> consistency<span class=\"token punctuation\">,<\/span> accuracy<span class=\"token punctuation\">,<\/span> timeliness<span class=\"token punctuation\">,<\/span> uniqueness<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span> RowEncoder<span class=\"token punctuation\">.<\/span><span class=\"token builtin\">apply<\/span><span class=\"token punctuation\">(<\/span>StructType<span class=\"token punctuation\">.<\/span>fromDDL<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;title string, total_score double, completeness double, consistency double, accuracy double, timeliness double, uniqueness double&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nfinalScore<span class=\"token punctuation\">.<\/span>createOrReplaceTempView<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;quality_view&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> genrePie <span class=\"token operator\">&#061;<\/span> spark<span class=\"token punctuation\">.<\/span>sql<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;SELECT listed_in, COUNT(*) as cnt FROM quality_view GROUP BY listed_in ORDER BY cnt DESC LIMIT 10&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> countryBar <span class=\"token operator\">&#061;<\/span> spark<span class=\"token punctuation\">.<\/span>sql<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;SELECT country, COUNT(*) as cnt FROM quality_view WHERE country !&#061; &#039;unknown&#039; GROUP BY country ORDER BY cnt DESC LIMIT 15&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> ratingHist <span class=\"token operator\">&#061;<\/span> spark<span class=\"token punctuation\">.<\/span>sql<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;SELECT rating, COUNT(*) as cnt FROM quality_view WHERE rating !&#061; &#039;N\/A&#039; GROUP BY rating ORDER BY rating&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> qualityScatter <span class=\"token operator\">&#061;<\/span> spark<span class=\"token punctuation\">.<\/span>sql<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;SELECT title, total_score, imdb_score FROM quality_view JOIN integratedDf ON quality_view.title &#061; integratedDf.title WHERE imdb_score IS NOT NULL&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> qualityCluster <span class=\"token operator\">&#061;<\/span> spark<span class=\"token punctuation\">.<\/span>sql<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;SELECT CASE WHEN total_score &gt;&#061; 80 THEN &#039;\u4f18\u8d28&#039; WHEN total_score &gt;&#061; 60 THEN &#039;\u826f\u597d&#039; WHEN total_score &gt;&#061; 40 THEN &#039;\u4e00\u822c&#039; ELSE &#039;\u8f83\u5dee&#039; END as quality_level, COUNT(*) as cnt FROM quality_view GROUP BY quality_level&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> fieldCoverage <span class=\"token operator\">&#061;<\/span> spark<span class=\"token punctuation\">.<\/span>sql<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;SELECT &#039;completeness&#039; as field, AVG(completeness) as avg_score FROM quality_view UNION SELECT &#039;consistency&#039;, AVG(consistency) FROM quality_view UNION SELECT &#039;accuracy&#039;, AVG(accuracy) FROM quality_view UNION SELECT &#039;timeliness&#039;, AVG(timeliness) FROM quality_view UNION SELECT &#039;uniqueness&#039;, AVG(uniqueness) FROM quality_view&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nDataset<span class=\"token operator\">&lt;<\/span>Row<span class=\"token operator\">&gt;<\/span> trendOverTime <span class=\"token operator\">&#061;<\/span> spark<span class=\"token punctuation\">.<\/span>sql<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;SELECT date_added, COUNT(*) as cnt, AVG(total_score) as avg_score FROM quality_view JOIN integratedDf ON quality_view.title &#061; integratedDf.title WHERE date_added !&#061; &#039;N\/A&#039; GROUP BY date_added ORDER BY date_added LIMIT 30&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\ngenrePie<span class=\"token punctuation\">.<\/span>write<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>mode<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;overwrite&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token builtin\">format<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;jdbc&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;url&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;jdbc:mysql:\/\/localhost:3306\/film_db&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;dbtable&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;genre_statistics&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;user&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;root&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;password&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;123456&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>save<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\ncountryBar<span class=\"token punctuation\">.<\/span>write<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>mode<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;overwrite&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token builtin\">format<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;jdbc&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;url&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;jdbc:mysql:\/\/localhost:3306\/film_db&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;dbtable&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;country_statistics&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;user&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;root&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;password&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;123456&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>save<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nratingHist<span class=\"token punctuation\">.<\/span>write<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>mode<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;overwrite&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token builtin\">format<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;jdbc&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;url&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;jdbc:mysql:\/\/localhost:3306\/film_db&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;dbtable&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;rating_statistics&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;user&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;root&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;password&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;123456&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>save<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nqualityScatter<span class=\"token punctuation\">.<\/span>write<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>mode<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;overwrite&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token builtin\">format<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;jdbc&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;url&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;jdbc:mysql:\/\/localhost:3306\/film_db&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;dbtable&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;quality_scatter_data&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;user&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;root&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;password&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;123456&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>save<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nqualityCluster<span class=\"token punctuation\">.<\/span>write<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>mode<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;overwrite&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token builtin\">format<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;jdbc&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;url&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;jdbc:mysql:\/\/localhost:3306\/film_db&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;dbtable&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;quality_cluster_data&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;user&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;root&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;password&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;123456&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>save<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nfieldCoverage<span class=\"token punctuation\">.<\/span>write<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>mode<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;overwrite&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token builtin\">format<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;jdbc&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;url&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;jdbc:mysql:\/\/localhost:3306\/film_db&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;dbtable&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;field_coverage_data&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;user&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;root&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;password&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;123456&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>save<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\ntrendOverTime<span class=\"token punctuation\">.<\/span>write<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>mode<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;overwrite&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span><span class=\"token builtin\">format<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;jdbc&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;url&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;jdbc:mysql:\/\/localhost:3306\/film_db&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;dbtable&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;trend_data&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;user&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;root&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>option<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;password&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;123456&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>save<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><br \/>\nspark<span class=\"token punctuation\">.<\/span>stop<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/p>\n<h2>\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790\u6587\u6863\u5c55\u793a<\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261011063322-6acb2db2e4d59.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><\/p>\n<p>&#x1f496;&#x1f496;\u4f5c\u8005&#xff1a;\u8ba1\u7b97\u673a\u6bd5\u4e1a\u8bbe\u8ba1\u6c5f\u633d &#x1f499;&#x1f499;\u4e2a\u4eba\u7b80\u4ecb&#xff1a;\u66fe\u957f\u671f\u4ece\u4e8b\u8ba1\u7b97\u673a\u4e13\u4e1a\u57f9\u8bad\u6559\u5b66&#xff0c;\u672c\u4eba\u4e5f\u70ed\u7231\u4e0a\u8bfe\u6559\u5b66&#xff0c;\u8bed\u8a00\u64c5\u957fJava\u3001\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u3001Python\u3001Golang\u3001\u5b89\u5353Android\u7b49&#xff0c;\u5f00\u53d1\u9879\u76ee\u5305\u62ec\u5927\u6570\u636e\u3001\u6df1\u5ea6\u5b66\u4e60\u3001\u7f51\u7ad9\u3001\u5c0f\u7a0b\u5e8f\u3001\u5b89\u5353\u3001\u7b97\u6cd5\u3002\u5e73\u5e38\u4f1a\u505a\u4e00\u4e9b\u9879\u76ee\u5b9a\u5236\u5316\u5f00\u53d1\u3001\u4ee3\u7801\u8bb2\u89e3\u3001\u7b54\u8fa9\u6559\u5b66\u3001\u6587\u6863\u7f16\u5199\u3001\u4e5f\u61c2\u4e00\u4e9b\u964d\u91cd\u65b9\u9762\u7684\u6280\u5de7\u3002\u5e73\u5e38\u559c\u6b22\u5206\u4eab\u4e00\u4e9b\u81ea\u5df1\u5f00\u53d1\u4e2d\u9047\u5230\u7684\u95ee\u9898\u7684\u89e3\u51b3\u529e\u6cd5&#xff0c;\u4e5f\u559c\u6b22\u4ea4\u6d41\u6280\u672f&#xff0c;\u5927\u5bb6\u6709\u6280\u672f\u4ee3\u7801\u8fd9\u4e00\u5757\u7684\u95ee\u9898\u53ef\u4ee5\u95ee\u6211&#xff01; &#x1f49b;&#x1f49b;\u60f3\u8bf4\u7684\u8bdd&#xff1a;\u611f\u8c22\u5927\u5bb6\u7684\u5173\u6ce8\u4e0e\u652f\u6301&#xff01; &#x1f49c;&#x1f49c; \u7f51\u7ad9\u5b9e\u6218\u9879\u76ee \u5b89\u5353\/\u5c0f\u7a0b\u5e8f\u5b9e\u6218\u9879\u76ee \u5927\u6570\u636e\u5b9e\u6218\u9879\u76ee \u6df1\u5ea6\u5b66\u4e60\u5b9e\u6218\u9879\u76ee<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#x1f496;&#x1f496;\u4f5c\u8005&#xff1a;\u8ba1\u7b97\u673a\u6bd5\u4e1a\u8bbe\u8ba1\u6c5f\u633d &#x1f499;&#x1f499;\u4e2a\u4eba\u7b80\u4ecb&#xff1a;\u66fe\u957f\u671f\u4ece\u4e8b\u8ba1\u7b97\u673a\u4e13\u4e1a\u57f9\u8bad\u6559\u5b66&#xff0c;\u672c\u4eba\u4e5f\u70ed\u7231\u4e0a\u8bfe\u6559\u5b66&#xff0c;\u8bed\u8a00\u64c5\u957fJava\u3001\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u3001Python\u3001Golang\u3001\u5b89\u5353Android\u7b49&#xff0c;\u5f00\u53d1\u9879\u76ee\u5305\u62ec\u5927\u6570\u636e\u3001\u6df1\u5ea6\u5b66\u4e60\u3001\u7f51\u7ad9\u3001\u5c0f\u7a0b\u5e8f\u3001\u5b89\u5353\u3001\u7b97\u6cd5\u3002\u5e73\u5e38\u4f1a\u505a\u4e00\u4e9b\u9879\u76ee\u5b9a\u5236\u5316\u5f00\u53d1\u3001\u4ee3\u7801\u8bb2\u89e3\u3001\u7b54\u8fa9\u6559\u5b66\u3001\u6587\u6863\u7f16\u5199\u3001\u4e5f\u61c2\u4e00\u4e9b\u964d\u91cd\u65b9\u9762\u7684\u6280\u5de7\u3002\u5e73\u5e38\u559c\u6b22\u5206\u4eab\u4e00\u4e9b\u81ea\u5df1\u5f00\u53d1\u4e2d\u9047\u5230\u7684\u95ee<\/p>\n","protected":false},"author":2,"featured_media":115220,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[323,62,938],"topic":[],"class_list":["post-115229","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server","tag-323","tag-62","tag-938"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u30102027\u5927\u6570\u636e\u6bd5\u8bbe\u3011\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790 \uff08\u9644\u6e90\u7801\u8d44\u6599\uff09\u6570\u636e\u5206\u6790\uff0c\u53ef\u89c6\u5316\u5927\u5c4f_\u6bd5\u8bbe\u9009\u9898\u63a8\u8350_\u5927\u6570\u636e\u9879\u76ee_\u6570\u636e\u6316\u6398\u7b97\u6cd5 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/115229.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u30102027\u5927\u6570\u636e\u6bd5\u8bbe\u3011\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790 \uff08\u9644\u6e90\u7801\u8d44\u6599\uff09\u6570\u636e\u5206\u6790\uff0c\u53ef\u89c6\u5316\u5927\u5c4f_\u6bd5\u8bbe\u9009\u9898\u63a8\u8350_\u5927\u6570\u636e\u9879\u76ee_\u6570\u636e\u6316\u6398\u7b97\u6cd5 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"&#x1f496;&#x1f496;\u4f5c\u8005&#xff1a;\u8ba1\u7b97\u673a\u6bd5\u4e1a\u8bbe\u8ba1\u6c5f\u633d &#x1f499;&#x1f499;\u4e2a\u4eba\u7b80\u4ecb&#xff1a;\u66fe\u957f\u671f\u4ece\u4e8b\u8ba1\u7b97\u673a\u4e13\u4e1a\u57f9\u8bad\u6559\u5b66&#xff0c;\u672c\u4eba\u4e5f\u70ed\u7231\u4e0a\u8bfe\u6559\u5b66&#xff0c;\u8bed\u8a00\u64c5\u957fJava\u3001\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u3001Python\u3001Golang\u3001\u5b89\u5353Android\u7b49&#xff0c;\u5f00\u53d1\u9879\u76ee\u5305\u62ec\u5927\u6570\u636e\u3001\u6df1\u5ea6\u5b66\u4e60\u3001\u7f51\u7ad9\u3001\u5c0f\u7a0b\u5e8f\u3001\u5b89\u5353\u3001\u7b97\u6cd5\u3002\u5e73\u5e38\u4f1a\u505a\u4e00\u4e9b\u9879\u76ee\u5b9a\u5236\u5316\u5f00\u53d1\u3001\u4ee3\u7801\u8bb2\u89e3\u3001\u7b54\u8fa9\u6559\u5b66\u3001\u6587\u6863\u7f16\u5199\u3001\u4e5f\u61c2\u4e00\u4e9b\u964d\u91cd\u65b9\u9762\u7684\u6280\u5de7\u3002\u5e73\u5e38\u559c\u6b22\u5206\u4eab\u4e00\u4e9b\u81ea\u5df1\u5f00\u53d1\u4e2d\u9047\u5230\u7684\u95ee\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/115229.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-11T06:33:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261011063317-6acb2dadee229.png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/115229.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/115229.html\",\"name\":\"\u30102027\u5927\u6570\u636e\u6bd5\u8bbe\u3011\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790 \uff08\u9644\u6e90\u7801\u8d44\u6599\uff09\u6570\u636e\u5206\u6790\uff0c\u53ef\u89c6\u5316\u5927\u5c4f_\u6bd5\u8bbe\u9009\u9898\u63a8\u8350_\u5927\u6570\u636e\u9879\u76ee_\u6570\u636e\u6316\u6398\u7b97\u6cd5 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-10-11T06:33:24+00:00\",\"dateModified\":\"2026-10-11T06:33:24+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/115229.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/115229.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/115229.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u30102027\u5927\u6570\u636e\u6bd5\u8bbe\u3011\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790 \uff08\u9644\u6e90\u7801\u8d44\u6599\uff09\u6570\u636e\u5206\u6790\uff0c\u53ef\u89c6\u5316\u5927\u5c4f_\u6bd5\u8bbe\u9009\u9898\u63a8\u8350_\u5927\u6570\u636e\u9879\u76ee_\u6570\u636e\u6316\u6398\u7b97\u6cd5\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u30102027\u5927\u6570\u636e\u6bd5\u8bbe\u3011\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790 \uff08\u9644\u6e90\u7801\u8d44\u6599\uff09\u6570\u636e\u5206\u6790\uff0c\u53ef\u89c6\u5316\u5927\u5c4f_\u6bd5\u8bbe\u9009\u9898\u63a8\u8350_\u5927\u6570\u636e\u9879\u76ee_\u6570\u636e\u6316\u6398\u7b97\u6cd5 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/115229.html","og_locale":"zh_CN","og_type":"article","og_title":"\u30102027\u5927\u6570\u636e\u6bd5\u8bbe\u3011\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790 \uff08\u9644\u6e90\u7801\u8d44\u6599\uff09\u6570\u636e\u5206\u6790\uff0c\u53ef\u89c6\u5316\u5927\u5c4f_\u6bd5\u8bbe\u9009\u9898\u63a8\u8350_\u5927\u6570\u636e\u9879\u76ee_\u6570\u636e\u6316\u6398\u7b97\u6cd5 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"&#x1f496;&#x1f496;\u4f5c\u8005&#xff1a;\u8ba1\u7b97\u673a\u6bd5\u4e1a\u8bbe\u8ba1\u6c5f\u633d &#x1f499;&#x1f499;\u4e2a\u4eba\u7b80\u4ecb&#xff1a;\u66fe\u957f\u671f\u4ece\u4e8b\u8ba1\u7b97\u673a\u4e13\u4e1a\u57f9\u8bad\u6559\u5b66&#xff0c;\u672c\u4eba\u4e5f\u70ed\u7231\u4e0a\u8bfe\u6559\u5b66&#xff0c;\u8bed\u8a00\u64c5\u957fJava\u3001\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u3001Python\u3001Golang\u3001\u5b89\u5353Android\u7b49&#xff0c;\u5f00\u53d1\u9879\u76ee\u5305\u62ec\u5927\u6570\u636e\u3001\u6df1\u5ea6\u5b66\u4e60\u3001\u7f51\u7ad9\u3001\u5c0f\u7a0b\u5e8f\u3001\u5b89\u5353\u3001\u7b97\u6cd5\u3002\u5e73\u5e38\u4f1a\u505a\u4e00\u4e9b\u9879\u76ee\u5b9a\u5236\u5316\u5f00\u53d1\u3001\u4ee3\u7801\u8bb2\u89e3\u3001\u7b54\u8fa9\u6559\u5b66\u3001\u6587\u6863\u7f16\u5199\u3001\u4e5f\u61c2\u4e00\u4e9b\u964d\u91cd\u65b9\u9762\u7684\u6280\u5de7\u3002\u5e73\u5e38\u559c\u6b22\u5206\u4eab\u4e00\u4e9b\u81ea\u5df1\u5f00\u53d1\u4e2d\u9047\u5230\u7684\u95ee","og_url":"https:\/\/www.wsisp.com\/helps\/115229.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-10-11T06:33:24+00:00","og_image":[{"url":"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/10\/20261011063317-6acb2dadee229.png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"6 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/115229.html","url":"https:\/\/www.wsisp.com\/helps\/115229.html","name":"\u30102027\u5927\u6570\u636e\u6bd5\u8bbe\u3011\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790 \uff08\u9644\u6e90\u7801\u8d44\u6599\uff09\u6570\u636e\u5206\u6790\uff0c\u53ef\u89c6\u5316\u5927\u5c4f_\u6bd5\u8bbe\u9009\u9898\u63a8\u8350_\u5927\u6570\u636e\u9879\u76ee_\u6570\u636e\u6316\u6398\u7b97\u6cd5 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-10-11T06:33:24+00:00","dateModified":"2026-10-11T06:33:24+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/115229.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/115229.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/115229.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"\u30102027\u5927\u6570\u636e\u6bd5\u8bbe\u3011\u57fa\u4e8e\u5927\u6570\u636e\u7684\u591a\u6e90\u5f71\u89c6\u6570\u636e\u6574\u5408\u8d28\u91cf\u8bc4\u4f30\u4e0e\u53ef\u89c6\u5316\u5206\u6790 \uff08\u9644\u6e90\u7801\u8d44\u6599\uff09\u6570\u636e\u5206\u6790\uff0c\u53ef\u89c6\u5316\u5927\u5c4f_\u6bd5\u8bbe\u9009\u9898\u63a8\u8350_\u5927\u6570\u636e\u9879\u76ee_\u6570\u636e\u6316\u6398\u7b97\u6cd5"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/115229","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=115229"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/115229\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media\/115220"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=115229"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=115229"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=115229"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=115229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}