commit
89fccfbf25
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,214 @@
|
|||||||
|
from pyecharts.charts import Bar
|
||||||
|
from pyecharts import options as opts
|
||||||
|
from pyspark.sql.functions import col, when, avg
|
||||||
|
import pickle
|
||||||
|
from 大数据.读取Hbase函数 import HBaseDataLoading
|
||||||
|
|
||||||
|
|
||||||
|
def create_bar():
|
||||||
|
# 需要的列族:列限定符
|
||||||
|
column = ['info:地址', 'info:净利润']
|
||||||
|
|
||||||
|
df = HBaseDataLoading(column)
|
||||||
|
|
||||||
|
# 广西的14个市级名称
|
||||||
|
cities = ['南宁市', '柳州市', '桂林市', '梧州市', '北海市', '防城港市', '钦州市', '贵港市', '玉林市', '百色市',
|
||||||
|
'贺州市', '河池市', '来宾市', '崇左市']
|
||||||
|
# 对每个市进行处理
|
||||||
|
for city in cities:
|
||||||
|
df = df.withColumn('地址', when(df['地址'].contains(city[:-1]), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
# 广西的所有县级行政区划及其对应的市级行政区划
|
||||||
|
county_to_city = {
|
||||||
|
# 南宁市
|
||||||
|
'兴宁区': '南宁市',
|
||||||
|
'青秀区': '南宁市',
|
||||||
|
'江南区': '南宁市',
|
||||||
|
'西乡塘区': '南宁市',
|
||||||
|
'良庆区': '南宁市',
|
||||||
|
'邕宁区': '南宁市',
|
||||||
|
'武鸣区': '南宁市',
|
||||||
|
'隆安县': '南宁市',
|
||||||
|
'马山县': '南宁市',
|
||||||
|
'上林县': '南宁市',
|
||||||
|
'宾阳县': '南宁市',
|
||||||
|
'横县': '南宁市',
|
||||||
|
# 柳州市
|
||||||
|
'城中区': '柳州市',
|
||||||
|
'鱼峰区': '柳州市',
|
||||||
|
'柳南区': '柳州市',
|
||||||
|
'柳北区': '柳州市',
|
||||||
|
'柳江区': '柳州市',
|
||||||
|
'柳城县': '柳州市',
|
||||||
|
'鹿寨县': '柳州市',
|
||||||
|
'融安县': '柳州市',
|
||||||
|
'融水苗族自治县': '柳州市',
|
||||||
|
'三江侗族自治县': '柳州市',
|
||||||
|
# 桂林市
|
||||||
|
'秀峰区': '桂林市',
|
||||||
|
'叠彩区': '桂林市',
|
||||||
|
'象山区': '桂林市',
|
||||||
|
'七星区': '桂林市',
|
||||||
|
'雁山区': '桂林市',
|
||||||
|
'临桂区': '桂林市',
|
||||||
|
'阳朔县': '桂林市',
|
||||||
|
'灵川县': '桂林市',
|
||||||
|
'全州县': '桂林市',
|
||||||
|
'兴安县': '桂林市',
|
||||||
|
'永福县': '桂林市',
|
||||||
|
'灌阳县': '桂林市',
|
||||||
|
'龙胜各族自治县': '桂林市',
|
||||||
|
'资源县': '桂林市',
|
||||||
|
'平乐县': '桂林市',
|
||||||
|
'荔浦市': '桂林市',
|
||||||
|
'恭城瑶族自治县': '桂林市',
|
||||||
|
# 梧州市
|
||||||
|
'万秀区': '梧州市',
|
||||||
|
'长洲区': '梧州市',
|
||||||
|
'龙圩区': '梧州市',
|
||||||
|
'苍梧县': '梧州市',
|
||||||
|
'藤县': '梧州市',
|
||||||
|
'蒙山县': '梧州市',
|
||||||
|
'岑溪市': '梧州市',
|
||||||
|
# 北海市
|
||||||
|
'海城区': '北海市',
|
||||||
|
'银海区': '北海市',
|
||||||
|
'铁山港区': '北海市',
|
||||||
|
'合浦县': '北海市',
|
||||||
|
# 防城港市
|
||||||
|
'港口区': '防城港市',
|
||||||
|
'防城区': '防城港市',
|
||||||
|
'上思县': '防城港市',
|
||||||
|
'东兴市': '防城港市',
|
||||||
|
# 钦州市
|
||||||
|
'钦南区': '钦州市',
|
||||||
|
'钦北区': '钦州市',
|
||||||
|
'灵山县': '钦州市',
|
||||||
|
'浦北县': '钦州市',
|
||||||
|
# 贵港市
|
||||||
|
'港北区': '贵港市',
|
||||||
|
'港南区': '贵港市',
|
||||||
|
'覃塘区': '贵港市',
|
||||||
|
'平南县': '贵港市',
|
||||||
|
'桂平市': '贵港市',
|
||||||
|
# 玉林市
|
||||||
|
'玉州区': '玉林市',
|
||||||
|
'福绵区': '玉林市',
|
||||||
|
'容县': '玉林市',
|
||||||
|
'陆川县': '玉林市',
|
||||||
|
'博白县': '玉林市',
|
||||||
|
'兴业县': '玉林市',
|
||||||
|
'北流市': '玉林市',
|
||||||
|
# 百色市
|
||||||
|
'右江区': '百色市',
|
||||||
|
'田阳县': '百色市',
|
||||||
|
'田东县': '百色市',
|
||||||
|
'平果县': '百色市',
|
||||||
|
'德保县': '百色市',
|
||||||
|
'那坡县': '百色市',
|
||||||
|
'凌云县': '百色市',
|
||||||
|
'乐业县': '百色市',
|
||||||
|
'田林县': '百色市',
|
||||||
|
'西林县': '百色市',
|
||||||
|
'隆林各族自治县': '百色市',
|
||||||
|
'靖西市': '百色市',
|
||||||
|
# 贺州市
|
||||||
|
'八步区': '贺州市',
|
||||||
|
'平桂区': '贺州市',
|
||||||
|
'昭平县': '贺州市',
|
||||||
|
'钟山县': '贺州市',
|
||||||
|
'富川瑶族自治县': '贺州市',
|
||||||
|
# 河池市
|
||||||
|
'金城江区': '河池市',
|
||||||
|
'南丹县': '河池市',
|
||||||
|
'天峨县': '河池市',
|
||||||
|
'凤山县': '河池市',
|
||||||
|
'东兰县': '河池市',
|
||||||
|
'罗城仫佬族自治县': '河池市',
|
||||||
|
'环江毛南族自治县': '河池市',
|
||||||
|
'巴马瑶族自治县': '河池市',
|
||||||
|
'都安瑶族自治县': '河池市',
|
||||||
|
'大化瑶族自治县': '河池市',
|
||||||
|
'宜州市': '河池市',
|
||||||
|
# 来宾市
|
||||||
|
'兴宾区': '来宾市',
|
||||||
|
'忻城县': '来宾市',
|
||||||
|
'象州县': '来宾市',
|
||||||
|
'武宣县': '来宾市',
|
||||||
|
'金秀瑶族自治县': '来宾市',
|
||||||
|
'合山市': '来宾市',
|
||||||
|
# 崇左市
|
||||||
|
'江州区': '崇左市',
|
||||||
|
'扶绥县': '崇左市',
|
||||||
|
'宁明县': '崇左市',
|
||||||
|
'龙州县': '崇左市',
|
||||||
|
'大新县': '崇左市',
|
||||||
|
'天等县': '崇左市',
|
||||||
|
'凭祥市': '崇左市',
|
||||||
|
# 特殊值
|
||||||
|
'高新技术产业开发区': '南宁市',
|
||||||
|
'南宁经济技术开发区': '南宁市',
|
||||||
|
'东盟经济技术开发区': '南宁市',
|
||||||
|
'高新区': '南宁市',
|
||||||
|
'武鸣县': '南宁市',
|
||||||
|
'隆安': '南宁市',
|
||||||
|
'融水县': '柳州市',
|
||||||
|
'融安': '柳州市',
|
||||||
|
'柳江县': '柳州市',
|
||||||
|
'柳邕': '柳州市',
|
||||||
|
'平果': '百色市',
|
||||||
|
'田阳': '百色市',
|
||||||
|
'灵川': '桂林市',
|
||||||
|
'临桂': '桂林市',
|
||||||
|
'龙胜县': '桂林市',
|
||||||
|
'荔浦县': '桂林市',
|
||||||
|
'恭城县': '桂林市',
|
||||||
|
'巴马县': '河池市',
|
||||||
|
'罗城': '河池市',
|
||||||
|
'合浦': '北海市',
|
||||||
|
# 特殊值2
|
||||||
|
'科园西十路24号': '南宁市',
|
||||||
|
'科园东四路5号': '南宁市',
|
||||||
|
'秀安路13-11号': '南宁市',
|
||||||
|
'科园大道31号财智时代12楼': '南宁市',
|
||||||
|
'新兴工业园创业路6号': '柳州市',
|
||||||
|
'洛维工业集中区': '柳州市',
|
||||||
|
'中马产业园区': '钦州市',
|
||||||
|
'长安工业集中区': '桂林市',
|
||||||
|
'西江四路扶典上冲29号': '梧州市',
|
||||||
|
'田东石化工业': '百色市',
|
||||||
|
}
|
||||||
|
# 对每个县级行政区划进行处理
|
||||||
|
for county, city in county_to_city.items():
|
||||||
|
df = df.withColumn('地址', when(df['地址'].contains(county), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
# 将净利润的列数据转换为float
|
||||||
|
df = df.withColumn("净利润", col("净利润").cast("float"))
|
||||||
|
# 按市分组并计算平均净利润
|
||||||
|
df_avg = df.groupBy("地址").agg(avg("净利润").alias("平均净利润"))
|
||||||
|
|
||||||
|
# 将Spark DataFrame转换成Pandas DataFrame
|
||||||
|
pandas_df = df_avg.toPandas()
|
||||||
|
|
||||||
|
# 将平均净利润取整
|
||||||
|
pandas_df['平均净利润'] = pandas_df['平均净利润'].round()
|
||||||
|
|
||||||
|
# 按平均净利润排序
|
||||||
|
pandas_df = pandas_df.sort_values(by='平均净利润', ascending=False)
|
||||||
|
|
||||||
|
# 创建Bar对象
|
||||||
|
bar = Bar()
|
||||||
|
|
||||||
|
# 设置x轴和y轴的数据
|
||||||
|
x_axis = pandas_df['地址'].tolist()
|
||||||
|
y_axis = [round(amount / 100000, 3) for amount in pandas_df['平均净利润'].tolist()]
|
||||||
|
|
||||||
|
|
||||||
|
# 添加数据到Bar对象中
|
||||||
|
bar.add_xaxis(x_axis)
|
||||||
|
bar.add_yaxis("平均净利润(亿元)", y_axis)
|
||||||
|
|
||||||
|
# 调整x轴标签间隔
|
||||||
|
bar.set_global_opts(xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(interval=0)))
|
||||||
|
|
||||||
|
return bar
|
@ -0,0 +1,210 @@
|
|||||||
|
from pyecharts.charts import Bar
|
||||||
|
from pyspark.sql import functions as F
|
||||||
|
from pyecharts import options as opts
|
||||||
|
from pyspark.sql.functions import sum
|
||||||
|
from 大数据.读取Hbase函数 import HBaseDataLoading
|
||||||
|
|
||||||
|
|
||||||
|
def create_line():
|
||||||
|
# 需要的列族:列限定符
|
||||||
|
column = ['info:地址', 'info:其中:出口总额']
|
||||||
|
|
||||||
|
df = HBaseDataLoading(column)
|
||||||
|
|
||||||
|
# 广西的14个市级名称
|
||||||
|
cities = ['南宁市', '柳州市', '桂林市', '梧州市', '北海市', '防城港市', '钦州市', '贵港市', '玉林市', '百色市',
|
||||||
|
'贺州市', '河池市', '来宾市', '崇左市']
|
||||||
|
# 对每个市进行处理
|
||||||
|
for city in cities:
|
||||||
|
df = df.withColumn('地址', F.when(df['地址'].contains(city[:-1]), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
# 广西的所有县级行政区划及其对应的市级行政区划
|
||||||
|
county_to_city = {
|
||||||
|
# 南宁市
|
||||||
|
'兴宁区': '南宁市',
|
||||||
|
'青秀区': '南宁市',
|
||||||
|
'江南区': '南宁市',
|
||||||
|
'西乡塘区': '南宁市',
|
||||||
|
'良庆区': '南宁市',
|
||||||
|
'邕宁区': '南宁市',
|
||||||
|
'武鸣区': '南宁市',
|
||||||
|
'隆安县': '南宁市',
|
||||||
|
'马山县': '南宁市',
|
||||||
|
'上林县': '南宁市',
|
||||||
|
'宾阳县': '南宁市',
|
||||||
|
'横县': '南宁市',
|
||||||
|
# 柳州市
|
||||||
|
'城中区': '柳州市',
|
||||||
|
'鱼峰区': '柳州市',
|
||||||
|
'柳南区': '柳州市',
|
||||||
|
'柳北区': '柳州市',
|
||||||
|
'柳江区': '柳州市',
|
||||||
|
'柳城县': '柳州市',
|
||||||
|
'鹿寨县': '柳州市',
|
||||||
|
'融安县': '柳州市',
|
||||||
|
'融水苗族自治县': '柳州市',
|
||||||
|
'三江侗族自治县': '柳州市',
|
||||||
|
# 桂林市
|
||||||
|
'秀峰区': '桂林市',
|
||||||
|
'叠彩区': '桂林市',
|
||||||
|
'象山区': '桂林市',
|
||||||
|
'七星区': '桂林市',
|
||||||
|
'雁山区': '桂林市',
|
||||||
|
'临桂区': '桂林市',
|
||||||
|
'阳朔县': '桂林市',
|
||||||
|
'灵川县': '桂林市',
|
||||||
|
'全州县': '桂林市',
|
||||||
|
'兴安县': '桂林市',
|
||||||
|
'永福县': '桂林市',
|
||||||
|
'灌阳县': '桂林市',
|
||||||
|
'龙胜各族自治县': '桂林市',
|
||||||
|
'资源县': '桂林市',
|
||||||
|
'平乐县': '桂林市',
|
||||||
|
'荔浦市': '桂林市',
|
||||||
|
'恭城瑶族自治县': '桂林市',
|
||||||
|
# 梧州市
|
||||||
|
'万秀区': '梧州市',
|
||||||
|
'长洲区': '梧州市',
|
||||||
|
'龙圩区': '梧州市',
|
||||||
|
'苍梧县': '梧州市',
|
||||||
|
'藤县': '梧州市',
|
||||||
|
'蒙山县': '梧州市',
|
||||||
|
'岑溪市': '梧州市',
|
||||||
|
# 北海市
|
||||||
|
'海城区': '北海市',
|
||||||
|
'银海区': '北海市',
|
||||||
|
'铁山港区': '北海市',
|
||||||
|
'合浦县': '北海市',
|
||||||
|
# 防城港市
|
||||||
|
'港口区': '防城港市',
|
||||||
|
'防城区': '防城港市',
|
||||||
|
'上思县': '防城港市',
|
||||||
|
'东兴市': '防城港市',
|
||||||
|
# 钦州市
|
||||||
|
'钦南区': '钦州市',
|
||||||
|
'钦北区': '钦州市',
|
||||||
|
'灵山县': '钦州市',
|
||||||
|
'浦北县': '钦州市',
|
||||||
|
# 贵港市
|
||||||
|
'港北区': '贵港市',
|
||||||
|
'港南区': '贵港市',
|
||||||
|
'覃塘区': '贵港市',
|
||||||
|
'平南县': '贵港市',
|
||||||
|
'桂平市': '贵港市',
|
||||||
|
# 玉林市
|
||||||
|
'玉州区': '玉林市',
|
||||||
|
'福绵区': '玉林市',
|
||||||
|
'容县': '玉林市',
|
||||||
|
'陆川县': '玉林市',
|
||||||
|
'博白县': '玉林市',
|
||||||
|
'兴业县': '玉林市',
|
||||||
|
'北流市': '玉林市',
|
||||||
|
# 百色市
|
||||||
|
'右江区': '百色市',
|
||||||
|
'田阳县': '百色市',
|
||||||
|
'田东县': '百色市',
|
||||||
|
'平果县': '百色市',
|
||||||
|
'德保县': '百色市',
|
||||||
|
'那坡县': '百色市',
|
||||||
|
'凌云县': '百色市',
|
||||||
|
'乐业县': '百色市',
|
||||||
|
'田林县': '百色市',
|
||||||
|
'西林县': '百色市',
|
||||||
|
'隆林各族自治县': '百色市',
|
||||||
|
'靖西市': '百色市',
|
||||||
|
# 贺州市
|
||||||
|
'八步区': '贺州市',
|
||||||
|
'平桂区': '贺州市',
|
||||||
|
'昭平县': '贺州市',
|
||||||
|
'钟山县': '贺州市',
|
||||||
|
'富川瑶族自治县': '贺州市',
|
||||||
|
# 河池市
|
||||||
|
'金城江区': '河池市',
|
||||||
|
'南丹县': '河池市',
|
||||||
|
'天峨县': '河池市',
|
||||||
|
'凤山县': '河池市',
|
||||||
|
'东兰县': '河池市',
|
||||||
|
'罗城仫佬族自治县': '河池市',
|
||||||
|
'环江毛南族自治县': '河池市',
|
||||||
|
'巴马瑶族自治县': '河池市',
|
||||||
|
'都安瑶族自治县': '河池市',
|
||||||
|
'大化瑶族自治县': '河池市',
|
||||||
|
'宜州市': '河池市',
|
||||||
|
# 来宾市
|
||||||
|
'兴宾区': '来宾市',
|
||||||
|
'忻城县': '来宾市',
|
||||||
|
'象州县': '来宾市',
|
||||||
|
'武宣县': '来宾市',
|
||||||
|
'金秀瑶族自治县': '来宾市',
|
||||||
|
'合山市': '来宾市',
|
||||||
|
# 崇左市
|
||||||
|
'江州区': '崇左市',
|
||||||
|
'扶绥县': '崇左市',
|
||||||
|
'宁明县': '崇左市',
|
||||||
|
'龙州县': '崇左市',
|
||||||
|
'大新县': '崇左市',
|
||||||
|
'天等县': '崇左市',
|
||||||
|
'凭祥市': '崇左市',
|
||||||
|
# 特殊值
|
||||||
|
'高新技术产业开发区': '南宁市',
|
||||||
|
'南宁经济技术开发区': '南宁市',
|
||||||
|
'东盟经济技术开发区': '南宁市',
|
||||||
|
'高新区': '南宁市',
|
||||||
|
'武鸣县': '南宁市',
|
||||||
|
'隆安': '南宁市',
|
||||||
|
'融水县': '柳州市',
|
||||||
|
'融安': '柳州市',
|
||||||
|
'柳江县': '柳州市',
|
||||||
|
'柳邕': '柳州市',
|
||||||
|
'平果': '百色市',
|
||||||
|
'田阳': '百色市',
|
||||||
|
'灵川': '桂林市',
|
||||||
|
'临桂': '桂林市',
|
||||||
|
'龙胜县': '桂林市',
|
||||||
|
'荔浦县': '桂林市',
|
||||||
|
'恭城县': '桂林市',
|
||||||
|
'巴马县': '河池市',
|
||||||
|
'罗城': '河池市',
|
||||||
|
'合浦': '北海市',
|
||||||
|
# 特殊值2
|
||||||
|
'科园西十路24号': '南宁市',
|
||||||
|
'科园东四路5号': '南宁市',
|
||||||
|
'秀安路13-11号': '南宁市',
|
||||||
|
'科园大道31号财智时代12楼': '南宁市',
|
||||||
|
'新兴工业园创业路6号': '柳州市',
|
||||||
|
'洛维工业集中区': '柳州市',
|
||||||
|
'中马产业园区': '钦州市',
|
||||||
|
'长安工业集中区': '桂林市',
|
||||||
|
'西江四路扶典上冲29号': '梧州市',
|
||||||
|
'田东石化工业': '百色市',
|
||||||
|
}
|
||||||
|
# 对每个县级行政区划进行处理
|
||||||
|
for county, city in county_to_city.items():
|
||||||
|
df = df.withColumn('地址', F.when(df['地址'].contains(county), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
df = df.withColumn("其中:出口总额", df["其中:出口总额"].cast("double"))
|
||||||
|
|
||||||
|
tax_sum_per_address = df.groupBy("地址").agg(sum("其中:出口总额").alias("总计出口总额")).orderBy("总计出口总额", ascending=False)
|
||||||
|
|
||||||
|
tax_sum_per_address = tax_sum_per_address.toPandas()
|
||||||
|
|
||||||
|
# 创建折线图
|
||||||
|
bar = (
|
||||||
|
Bar()
|
||||||
|
.add_xaxis(list(tax_sum_per_address["地址"]))
|
||||||
|
.add_yaxis("总计出口总额(亿元)", list(round(row / 100000, 3) for row in tax_sum_per_address["总计出口总额"]),
|
||||||
|
label_opts=opts.LabelOpts(position="inside"))
|
||||||
|
.set_global_opts(
|
||||||
|
toolbox_opts=opts.ToolboxOpts(orient="vertical", pos_top="50%", pos_left="95%"),
|
||||||
|
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(interval=0))
|
||||||
|
)
|
||||||
|
.set_series_opts(
|
||||||
|
itemstyle_opts={"barBorderRadius": [5, 5, 5, 5], "barWidth": "30%"}, # 设置圆角和柱子宽度
|
||||||
|
label_opts=opts.LabelOpts(is_show=True, position="top", formatter="{c}"), # 显示数值,并设置标签位置和格式
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
# 渲染图表为 HTML 文件
|
||||||
|
# line.render("广西省出口榜.html")
|
||||||
|
|
||||||
|
return bar
|
@ -0,0 +1,203 @@
|
|||||||
|
from pyecharts.charts import Bar, Pie
|
||||||
|
from pyspark.sql.functions import when, col
|
||||||
|
from pyecharts import options as opts
|
||||||
|
from pyspark.sql.functions import sum
|
||||||
|
from 大数据.读取Hbase函数 import HBaseDataLoading
|
||||||
|
|
||||||
|
|
||||||
|
def create_pie():
|
||||||
|
# 需要的列族:列限定符
|
||||||
|
column = ['info:地址', 'info:从业人员期末人数']
|
||||||
|
|
||||||
|
df = HBaseDataLoading(column)
|
||||||
|
# 广西的14个市级名称
|
||||||
|
cities = ['南宁市', '柳州市', '桂林市', '梧州市', '北海市', '防城港', '钦州市', '贵港市', '玉林市', '百色市',
|
||||||
|
'贺州市', '河池市', '来宾市', '崇左市']
|
||||||
|
# 对每个市进行处理
|
||||||
|
for city in cities:
|
||||||
|
df = df.withColumn('地址', when(df['地址'].contains(city[:-1]), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
# 广西的所有县级行政区划及其对应的市级行政区划
|
||||||
|
county_to_city = {
|
||||||
|
# 南宁市
|
||||||
|
'兴宁区': '南宁市',
|
||||||
|
'青秀区': '南宁市',
|
||||||
|
'江南区': '南宁市',
|
||||||
|
'西乡塘区': '南宁市',
|
||||||
|
'良庆区': '南宁市',
|
||||||
|
'邕宁区': '南宁市',
|
||||||
|
'武鸣区': '南宁市',
|
||||||
|
'隆安县': '南宁市',
|
||||||
|
'马山县': '南宁市',
|
||||||
|
'上林县': '南宁市',
|
||||||
|
'宾阳县': '南宁市',
|
||||||
|
'横县': '南宁市',
|
||||||
|
# 柳州市
|
||||||
|
'城中区': '柳州市',
|
||||||
|
'鱼峰区': '柳州市',
|
||||||
|
'柳南区': '柳州市',
|
||||||
|
'柳北区': '柳州市',
|
||||||
|
'柳江区': '柳州市',
|
||||||
|
'柳城县': '柳州市',
|
||||||
|
'鹿寨县': '柳州市',
|
||||||
|
'融安县': '柳州市',
|
||||||
|
'融水苗族自治县': '柳州市',
|
||||||
|
'三江侗族自治县': '柳州市',
|
||||||
|
# 桂林市
|
||||||
|
'秀峰区': '桂林市',
|
||||||
|
'叠彩区': '桂林市',
|
||||||
|
'象山区': '桂林市',
|
||||||
|
'七星区': '桂林市',
|
||||||
|
'雁山区': '桂林市',
|
||||||
|
'临桂区': '桂林市',
|
||||||
|
'阳朔县': '桂林市',
|
||||||
|
'灵川县': '桂林市',
|
||||||
|
'全州县': '桂林市',
|
||||||
|
'兴安县': '桂林市',
|
||||||
|
'永福县': '桂林市',
|
||||||
|
'灌阳县': '桂林市',
|
||||||
|
'龙胜各族自治县': '桂林市',
|
||||||
|
'资源县': '桂林市',
|
||||||
|
'平乐县': '桂林市',
|
||||||
|
'荔浦市': '桂林市',
|
||||||
|
'恭城瑶族自治县': '桂林市',
|
||||||
|
# 梧州市
|
||||||
|
'万秀区': '梧州市',
|
||||||
|
'长洲区': '梧州市',
|
||||||
|
'龙圩区': '梧州市',
|
||||||
|
'苍梧县': '梧州市',
|
||||||
|
'藤县': '梧州市',
|
||||||
|
'蒙山县': '梧州市',
|
||||||
|
'岑溪市': '梧州市',
|
||||||
|
# 北海市
|
||||||
|
'海城区': '北海市',
|
||||||
|
'银海区': '北海市',
|
||||||
|
'铁山港区': '北海市',
|
||||||
|
'合浦县': '北海市',
|
||||||
|
# 防城港市
|
||||||
|
'港口区': '防城港',
|
||||||
|
'防城区': '防城港',
|
||||||
|
'上思县': '防城港',
|
||||||
|
'东兴市': '防城港',
|
||||||
|
# 钦州市
|
||||||
|
'钦南区': '钦州市',
|
||||||
|
'钦北区': '钦州市',
|
||||||
|
'灵山县': '钦州市',
|
||||||
|
'浦北县': '钦州市',
|
||||||
|
# 贵港市
|
||||||
|
'港北区': '贵港市',
|
||||||
|
'港南区': '贵港市',
|
||||||
|
'覃塘区': '贵港市',
|
||||||
|
'平南县': '贵港市',
|
||||||
|
'桂平市': '贵港市',
|
||||||
|
# 玉林市
|
||||||
|
'玉州区': '玉林市',
|
||||||
|
'福绵区': '玉林市',
|
||||||
|
'容县': '玉林市',
|
||||||
|
'陆川县': '玉林市',
|
||||||
|
'博白县': '玉林市',
|
||||||
|
'兴业县': '玉林市',
|
||||||
|
'北流市': '玉林市',
|
||||||
|
# 百色市
|
||||||
|
'右江区': '百色市',
|
||||||
|
'田阳县': '百色市',
|
||||||
|
'田东县': '百色市',
|
||||||
|
'平果县': '百色市',
|
||||||
|
'德保县': '百色市',
|
||||||
|
'那坡县': '百色市',
|
||||||
|
'凌云县': '百色市',
|
||||||
|
'乐业县': '百色市',
|
||||||
|
'田林县': '百色市',
|
||||||
|
'西林县': '百色市',
|
||||||
|
'隆林各族自治县': '百色市',
|
||||||
|
'靖西市': '百色市',
|
||||||
|
# 贺州市
|
||||||
|
'八步区': '贺州市',
|
||||||
|
'平桂区': '贺州市',
|
||||||
|
'昭平县': '贺州市',
|
||||||
|
'钟山县': '贺州市',
|
||||||
|
'富川瑶族自治县': '贺州市',
|
||||||
|
# 河池市
|
||||||
|
'金城江区': '河池市',
|
||||||
|
'南丹县': '河池市',
|
||||||
|
'天峨县': '河池市',
|
||||||
|
'凤山县': '河池市',
|
||||||
|
'东兰县': '河池市',
|
||||||
|
'罗城仫佬族自治县': '河池市',
|
||||||
|
'环江毛南族自治县': '河池市',
|
||||||
|
'巴马瑶族自治县': '河池市',
|
||||||
|
'都安瑶族自治县': '河池市',
|
||||||
|
'大化瑶族自治县': '河池市',
|
||||||
|
'宜州市': '河池市',
|
||||||
|
# 来宾市
|
||||||
|
'兴宾区': '来宾市',
|
||||||
|
'忻城县': '来宾市',
|
||||||
|
'象州县': '来宾市',
|
||||||
|
'武宣县': '来宾市',
|
||||||
|
'金秀瑶族自治县': '来宾市',
|
||||||
|
'合山市': '来宾市',
|
||||||
|
# 崇左市
|
||||||
|
'江州区': '崇左市',
|
||||||
|
'扶绥县': '崇左市',
|
||||||
|
'宁明县': '崇左市',
|
||||||
|
'龙州县': '崇左市',
|
||||||
|
'大新县': '崇左市',
|
||||||
|
'天等县': '崇左市',
|
||||||
|
'凭祥市': '崇左市',
|
||||||
|
# 特殊值
|
||||||
|
'高新技术产业开发区': '南宁市',
|
||||||
|
'南宁经济技术开发区': '南宁市',
|
||||||
|
'东盟经济技术开发区': '南宁市',
|
||||||
|
'高新区': '南宁市',
|
||||||
|
'武鸣县': '南宁市',
|
||||||
|
'隆安': '南宁市',
|
||||||
|
'融水县': '柳州市',
|
||||||
|
'融安': '柳州市',
|
||||||
|
'柳江县': '柳州市',
|
||||||
|
'柳邕': '柳州市',
|
||||||
|
'平果': '百色市',
|
||||||
|
'田阳': '百色市',
|
||||||
|
'灵川': '桂林市',
|
||||||
|
'临桂': '桂林市',
|
||||||
|
'龙胜县': '桂林市',
|
||||||
|
'荔浦县': '桂林市',
|
||||||
|
'恭城县': '桂林市',
|
||||||
|
'巴马县': '河池市',
|
||||||
|
'罗城': '河池市',
|
||||||
|
'合浦': '北海市',
|
||||||
|
# 特殊值2
|
||||||
|
'科园西十路24号': '南宁市',
|
||||||
|
'科园东四路5号': '南宁市',
|
||||||
|
'秀安路13-11号': '南宁市',
|
||||||
|
'科园大道31号财智时代12楼': '南宁市',
|
||||||
|
'新兴工业园创业路6号': '柳州市',
|
||||||
|
'洛维工业集中区': '柳州市',
|
||||||
|
'中马产业园区': '钦州市',
|
||||||
|
'长安工业集中区': '桂林市',
|
||||||
|
'西江四路扶典上冲29号': '梧州市',
|
||||||
|
'田东石化工业': '百色市',
|
||||||
|
}
|
||||||
|
# 对每个县级行政区划进行处理
|
||||||
|
for county, city in county_to_city.items():
|
||||||
|
df = df.withColumn('地址', when(df['地址'].contains(county), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
df = df.withColumn("从业人员期末人数", df["从业人员期末人数"].cast("int"))
|
||||||
|
|
||||||
|
tax_sum_per_address = df.groupBy("地址").agg(sum("从业人员期末人数").alias("从业人员期末人数")).orderBy("从业人员期末人数", ascending=False)
|
||||||
|
|
||||||
|
tax_sum_per_address = tax_sum_per_address.toPandas()
|
||||||
|
|
||||||
|
pie = (
|
||||||
|
Pie()
|
||||||
|
.add("", [list(z) for z in zip(tax_sum_per_address["地址"], tax_sum_per_address["从业人员期末人数"])],
|
||||||
|
radius=["5%", "25%"], # 设置内外半径
|
||||||
|
center=["75%", "620px"], # 设置饼图的中心位置
|
||||||
|
rosetype="radius", # 设置为半径模式
|
||||||
|
label_opts=opts.LabelOpts(formatter="{b}: {c}人"))
|
||||||
|
# .set_global_opts(
|
||||||
|
# toolbox_opts=opts.ToolboxOpts(orient="vertical", pos_top="50%", pos_left="95%"),
|
||||||
|
# legend_opts=opts.LegendOpts(pos_top="95%"), # 设置图例的垂直位置
|
||||||
|
# )
|
||||||
|
)
|
||||||
|
|
||||||
|
return pie
|
@ -0,0 +1,214 @@
|
|||||||
|
from pyecharts.charts import Bar
|
||||||
|
from pyspark.sql.functions import when, col
|
||||||
|
from pyecharts import options as opts
|
||||||
|
from pyspark.sql.functions import sum
|
||||||
|
from 大数据.读取Hbase函数 import HBaseDataLoading
|
||||||
|
|
||||||
|
|
||||||
|
def create_bar():
|
||||||
|
# 需要的列族:列限定符
|
||||||
|
column = ['info:地址', 'info:实际上缴税费总额']
|
||||||
|
|
||||||
|
df = HBaseDataLoading(column)
|
||||||
|
|
||||||
|
# 广西的14个市级名称
|
||||||
|
cities = ['南宁市', '柳州市', '桂林市', '梧州市', '北海市', '防城港市', '钦州市', '贵港市', '玉林市', '百色市',
|
||||||
|
'贺州市', '河池市', '来宾市', '崇左市']
|
||||||
|
# 对每个市进行处理
|
||||||
|
for city in cities:
|
||||||
|
df = df.withColumn('地址', when(df['地址'].contains(city[:-1]), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
# 广西的所有县级行政区划及其对应的市级行政区划
|
||||||
|
county_to_city = {
|
||||||
|
# 南宁市
|
||||||
|
'兴宁区': '南宁市',
|
||||||
|
'青秀区': '南宁市',
|
||||||
|
'江南区': '南宁市',
|
||||||
|
'西乡塘区': '南宁市',
|
||||||
|
'良庆区': '南宁市',
|
||||||
|
'邕宁区': '南宁市',
|
||||||
|
'武鸣区': '南宁市',
|
||||||
|
'隆安县': '南宁市',
|
||||||
|
'马山县': '南宁市',
|
||||||
|
'上林县': '南宁市',
|
||||||
|
'宾阳县': '南宁市',
|
||||||
|
'横县': '南宁市',
|
||||||
|
# 柳州市
|
||||||
|
'城中区': '柳州市',
|
||||||
|
'鱼峰区': '柳州市',
|
||||||
|
'柳南区': '柳州市',
|
||||||
|
'柳北区': '柳州市',
|
||||||
|
'柳江区': '柳州市',
|
||||||
|
'柳城县': '柳州市',
|
||||||
|
'鹿寨县': '柳州市',
|
||||||
|
'融安县': '柳州市',
|
||||||
|
'融水苗族自治县': '柳州市',
|
||||||
|
'三江侗族自治县': '柳州市',
|
||||||
|
# 桂林市
|
||||||
|
'秀峰区': '桂林市',
|
||||||
|
'叠彩区': '桂林市',
|
||||||
|
'象山区': '桂林市',
|
||||||
|
'七星区': '桂林市',
|
||||||
|
'雁山区': '桂林市',
|
||||||
|
'临桂区': '桂林市',
|
||||||
|
'阳朔县': '桂林市',
|
||||||
|
'灵川县': '桂林市',
|
||||||
|
'全州县': '桂林市',
|
||||||
|
'兴安县': '桂林市',
|
||||||
|
'永福县': '桂林市',
|
||||||
|
'灌阳县': '桂林市',
|
||||||
|
'龙胜各族自治县': '桂林市',
|
||||||
|
'资源县': '桂林市',
|
||||||
|
'平乐县': '桂林市',
|
||||||
|
'荔浦市': '桂林市',
|
||||||
|
'恭城瑶族自治县': '桂林市',
|
||||||
|
# 梧州市
|
||||||
|
'万秀区': '梧州市',
|
||||||
|
'长洲区': '梧州市',
|
||||||
|
'龙圩区': '梧州市',
|
||||||
|
'苍梧县': '梧州市',
|
||||||
|
'藤县': '梧州市',
|
||||||
|
'蒙山县': '梧州市',
|
||||||
|
'岑溪市': '梧州市',
|
||||||
|
# 北海市
|
||||||
|
'海城区': '北海市',
|
||||||
|
'银海区': '北海市',
|
||||||
|
'铁山港区': '北海市',
|
||||||
|
'合浦县': '北海市',
|
||||||
|
# 防城港市
|
||||||
|
'港口区': '防城港市',
|
||||||
|
'防城区': '防城港市',
|
||||||
|
'上思县': '防城港市',
|
||||||
|
'东兴市': '防城港市',
|
||||||
|
# 钦州市
|
||||||
|
'钦南区': '钦州市',
|
||||||
|
'钦北区': '钦州市',
|
||||||
|
'灵山县': '钦州市',
|
||||||
|
'浦北县': '钦州市',
|
||||||
|
# 贵港市
|
||||||
|
'港北区': '贵港市',
|
||||||
|
'港南区': '贵港市',
|
||||||
|
'覃塘区': '贵港市',
|
||||||
|
'平南县': '贵港市',
|
||||||
|
'桂平市': '贵港市',
|
||||||
|
# 玉林市
|
||||||
|
'玉州区': '玉林市',
|
||||||
|
'福绵区': '玉林市',
|
||||||
|
'容县': '玉林市',
|
||||||
|
'陆川县': '玉林市',
|
||||||
|
'博白县': '玉林市',
|
||||||
|
'兴业县': '玉林市',
|
||||||
|
'北流市': '玉林市',
|
||||||
|
# 百色市
|
||||||
|
'右江区': '百色市',
|
||||||
|
'田阳县': '百色市',
|
||||||
|
'田东县': '百色市',
|
||||||
|
'平果县': '百色市',
|
||||||
|
'德保县': '百色市',
|
||||||
|
'那坡县': '百色市',
|
||||||
|
'凌云县': '百色市',
|
||||||
|
'乐业县': '百色市',
|
||||||
|
'田林县': '百色市',
|
||||||
|
'西林县': '百色市',
|
||||||
|
'隆林各族自治县': '百色市',
|
||||||
|
'靖西市': '百色市',
|
||||||
|
# 贺州市
|
||||||
|
'八步区': '贺州市',
|
||||||
|
'平桂区': '贺州市',
|
||||||
|
'昭平县': '贺州市',
|
||||||
|
'钟山县': '贺州市',
|
||||||
|
'富川瑶族自治县': '贺州市',
|
||||||
|
# 河池市
|
||||||
|
'金城江区': '河池市',
|
||||||
|
'南丹县': '河池市',
|
||||||
|
'天峨县': '河池市',
|
||||||
|
'凤山县': '河池市',
|
||||||
|
'东兰县': '河池市',
|
||||||
|
'罗城仫佬族自治县': '河池市',
|
||||||
|
'环江毛南族自治县': '河池市',
|
||||||
|
'巴马瑶族自治县': '河池市',
|
||||||
|
'都安瑶族自治县': '河池市',
|
||||||
|
'大化瑶族自治县': '河池市',
|
||||||
|
'宜州市': '河池市',
|
||||||
|
# 来宾市
|
||||||
|
'兴宾区': '来宾市',
|
||||||
|
'忻城县': '来宾市',
|
||||||
|
'象州县': '来宾市',
|
||||||
|
'武宣县': '来宾市',
|
||||||
|
'金秀瑶族自治县': '来宾市',
|
||||||
|
'合山市': '来宾市',
|
||||||
|
# 崇左市
|
||||||
|
'江州区': '崇左市',
|
||||||
|
'扶绥县': '崇左市',
|
||||||
|
'宁明县': '崇左市',
|
||||||
|
'龙州县': '崇左市',
|
||||||
|
'大新县': '崇左市',
|
||||||
|
'天等县': '崇左市',
|
||||||
|
'凭祥市': '崇左市',
|
||||||
|
# 特殊值
|
||||||
|
'高新技术产业开发区': '南宁市',
|
||||||
|
'南宁经济技术开发区': '南宁市',
|
||||||
|
'东盟经济技术开发区': '南宁市',
|
||||||
|
'高新区': '南宁市',
|
||||||
|
'武鸣县': '南宁市',
|
||||||
|
'隆安': '南宁市',
|
||||||
|
'融水县': '柳州市',
|
||||||
|
'融安': '柳州市',
|
||||||
|
'柳江县': '柳州市',
|
||||||
|
'柳邕': '柳州市',
|
||||||
|
'平果': '百色市',
|
||||||
|
'田阳': '百色市',
|
||||||
|
'灵川': '桂林市',
|
||||||
|
'临桂': '桂林市',
|
||||||
|
'龙胜县': '桂林市',
|
||||||
|
'荔浦县': '桂林市',
|
||||||
|
'恭城县': '桂林市',
|
||||||
|
'巴马县': '河池市',
|
||||||
|
'罗城': '河池市',
|
||||||
|
'合浦': '北海市',
|
||||||
|
# 特殊值2
|
||||||
|
'科园西十路24号': '南宁市',
|
||||||
|
'科园东四路5号': '南宁市',
|
||||||
|
'秀安路13-11号': '南宁市',
|
||||||
|
'科园大道31号财智时代12楼': '南宁市',
|
||||||
|
'新兴工业园创业路6号': '柳州市',
|
||||||
|
'洛维工业集中区': '柳州市',
|
||||||
|
'中马产业园区': '钦州市',
|
||||||
|
'长安工业集中区': '桂林市',
|
||||||
|
'西江四路扶典上冲29号': '梧州市',
|
||||||
|
'田东石化工业': '百色市',
|
||||||
|
}
|
||||||
|
# 对每个县级行政区划进行处理
|
||||||
|
for county, city in county_to_city.items():
|
||||||
|
df = df.withColumn('地址', when(df['地址'].contains(county), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
# df.show()
|
||||||
|
|
||||||
|
# 将实际上缴税费总额列转为double
|
||||||
|
df = df.withColumn("实际上缴税费总额", df["实际上缴税费总额"].cast("double"))
|
||||||
|
|
||||||
|
tax_sum_per_address = df.groupBy("地址").agg(sum("实际上缴税费总额").alias("总计实际上缴税费总额")).orderBy("总计实际上缴税费总额", ascending=False)
|
||||||
|
|
||||||
|
# 转为Pandas
|
||||||
|
tax_sum_per_address = tax_sum_per_address.toPandas()
|
||||||
|
|
||||||
|
# 创建柱状图
|
||||||
|
bar = (
|
||||||
|
Bar()
|
||||||
|
.add_xaxis(list(tax_sum_per_address["地址"]))
|
||||||
|
.add_yaxis("总计缴税费总额(亿元)", list(round(row / 100000, 2) for row in tax_sum_per_address["总计实际上缴税费总额"]),
|
||||||
|
label_opts=opts.LabelOpts(position="inside"))
|
||||||
|
.set_global_opts(
|
||||||
|
toolbox_opts=opts.ToolboxOpts(orient="vertical", pos_top="50%", pos_left="95%"),
|
||||||
|
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(interval=0))
|
||||||
|
)
|
||||||
|
.set_series_opts(
|
||||||
|
itemstyle_opts={"barBorderRadius": [5, 5, 5, 5], "barWidth": "30%"}, # 设置圆角和柱子宽度
|
||||||
|
label_opts=opts.LabelOpts(is_show=False, position="top", formatter="{c}元"), # 显示数值,并设置标签位置和格式
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
# 渲染图表为 HTML 文件
|
||||||
|
# bar.render("广西省税收榜.html")
|
||||||
|
|
||||||
|
return bar
|
@ -0,0 +1,226 @@
|
|||||||
|
from pyspark.sql import functions as F
|
||||||
|
from pyspark.sql.functions import split, concat, lit
|
||||||
|
from pyspark.sql.functions import length
|
||||||
|
from pyecharts.charts import Bar
|
||||||
|
from pyspark.sql.functions import when
|
||||||
|
from pyecharts import options as opts
|
||||||
|
from 大数据.读取Hbase函数 import HBaseDataLoading
|
||||||
|
|
||||||
|
|
||||||
|
def format_amount(amount):
|
||||||
|
return round(amount / 100000, 2)
|
||||||
|
|
||||||
|
|
||||||
|
def create_bar():
|
||||||
|
yy_column = ['info:地址', 'info:注册资金']
|
||||||
|
|
||||||
|
yy_df = HBaseDataLoading(yy_column)
|
||||||
|
|
||||||
|
# 处理---各个市企业总注册资金
|
||||||
|
cities = ['南宁市', '柳州市', '桂林市', '梧州市', '北海市', '防城港市', '钦州市', '贵港市', '玉林市', '百色市',
|
||||||
|
'贺州市', '河池市', '来宾市', '崇左市']
|
||||||
|
# 对每个市进行处理
|
||||||
|
for city in cities:
|
||||||
|
yy_df = yy_df.withColumn('地址', when(yy_df['地址'].contains(city[:-1]), city).otherwise(yy_df['地址']))
|
||||||
|
|
||||||
|
# 广西的所有县级行政区划及其对应的市级行政区划
|
||||||
|
county_to_city = {
|
||||||
|
# 南宁市
|
||||||
|
'兴宁区': '南宁市',
|
||||||
|
'青秀区': '南宁市',
|
||||||
|
'江南区': '南宁市',
|
||||||
|
'西乡塘区': '南宁市',
|
||||||
|
'良庆区': '南宁市',
|
||||||
|
'邕宁区': '南宁市',
|
||||||
|
'武鸣区': '南宁市',
|
||||||
|
'隆安县': '南宁市',
|
||||||
|
'马山县': '南宁市',
|
||||||
|
'上林县': '南宁市',
|
||||||
|
'宾阳县': '南宁市',
|
||||||
|
'横县': '南宁市',
|
||||||
|
# 柳州市
|
||||||
|
'城中区': '柳州市',
|
||||||
|
'鱼峰区': '柳州市',
|
||||||
|
'柳南区': '柳州市',
|
||||||
|
'柳北区': '柳州市',
|
||||||
|
'柳江区': '柳州市',
|
||||||
|
'柳城县': '柳州市',
|
||||||
|
'鹿寨县': '柳州市',
|
||||||
|
'融安县': '柳州市',
|
||||||
|
'融水苗族自治县': '柳州市',
|
||||||
|
'三江侗族自治县': '柳州市',
|
||||||
|
# 桂林市
|
||||||
|
'秀峰区': '桂林市',
|
||||||
|
'叠彩区': '桂林市',
|
||||||
|
'象山区': '桂林市',
|
||||||
|
'七星区': '桂林市',
|
||||||
|
'雁山区': '桂林市',
|
||||||
|
'临桂区': '桂林市',
|
||||||
|
'阳朔县': '桂林市',
|
||||||
|
'灵川县': '桂林市',
|
||||||
|
'全州县': '桂林市',
|
||||||
|
'兴安县': '桂林市',
|
||||||
|
'永福县': '桂林市',
|
||||||
|
'灌阳县': '桂林市',
|
||||||
|
'龙胜各族自治县': '桂林市',
|
||||||
|
'资源县': '桂林市',
|
||||||
|
'平乐县': '桂林市',
|
||||||
|
'荔浦市': '桂林市',
|
||||||
|
'恭城瑶族自治县': '桂林市',
|
||||||
|
# 梧州市
|
||||||
|
'万秀区': '梧州市',
|
||||||
|
'长洲区': '梧州市',
|
||||||
|
'龙圩区': '梧州市',
|
||||||
|
'苍梧县': '梧州市',
|
||||||
|
'藤县': '梧州市',
|
||||||
|
'蒙山县': '梧州市',
|
||||||
|
'岑溪市': '梧州市',
|
||||||
|
# 北海市
|
||||||
|
'海城区': '北海市',
|
||||||
|
'银海区': '北海市',
|
||||||
|
'铁山港区': '北海市',
|
||||||
|
'合浦县': '北海市',
|
||||||
|
# 防城港市
|
||||||
|
'港口区': '防城港市',
|
||||||
|
'防城区': '防城港市',
|
||||||
|
'上思县': '防城港市',
|
||||||
|
'东兴市': '防城港市',
|
||||||
|
# 钦州市
|
||||||
|
'钦南区': '钦州市',
|
||||||
|
'钦北区': '钦州市',
|
||||||
|
'灵山县': '钦州市',
|
||||||
|
'浦北县': '钦州市',
|
||||||
|
# 贵港市
|
||||||
|
'港北区': '贵港市',
|
||||||
|
'港南区': '贵港市',
|
||||||
|
'覃塘区': '贵港市',
|
||||||
|
'平南县': '贵港市',
|
||||||
|
'桂平市': '贵港市',
|
||||||
|
# 玉林市
|
||||||
|
'玉州区': '玉林市',
|
||||||
|
'福绵区': '玉林市',
|
||||||
|
'容县': '玉林市',
|
||||||
|
'陆川县': '玉林市',
|
||||||
|
'博白县': '玉林市',
|
||||||
|
'兴业县': '玉林市',
|
||||||
|
'北流市': '玉林市',
|
||||||
|
# 百色市
|
||||||
|
'右江区': '百色市',
|
||||||
|
'田阳县': '百色市',
|
||||||
|
'田东县': '百色市',
|
||||||
|
'平果县': '百色市',
|
||||||
|
'德保县': '百色市',
|
||||||
|
'那坡县': '百色市',
|
||||||
|
'凌云县': '百色市',
|
||||||
|
'乐业县': '百色市',
|
||||||
|
'田林县': '百色市',
|
||||||
|
'西林县': '百色市',
|
||||||
|
'隆林各族自治县': '百色市',
|
||||||
|
'靖西市': '百色市',
|
||||||
|
# 贺州市
|
||||||
|
'八步区': '贺州市',
|
||||||
|
'平桂区': '贺州市',
|
||||||
|
'昭平县': '贺州市',
|
||||||
|
'钟山县': '贺州市',
|
||||||
|
'富川瑶族自治县': '贺州市',
|
||||||
|
# 河池市
|
||||||
|
'金城江区': '河池市',
|
||||||
|
'南丹县': '河池市',
|
||||||
|
'天峨县': '河池市',
|
||||||
|
'凤山县': '河池市',
|
||||||
|
'东兰县': '河池市',
|
||||||
|
'罗城仫佬族自治县': '河池市',
|
||||||
|
'环江毛南族自治县': '河池市',
|
||||||
|
'巴马瑶族自治县': '河池市',
|
||||||
|
'都安瑶族自治县': '河池市',
|
||||||
|
'大化瑶族自治县': '河池市',
|
||||||
|
'宜州市': '河池市',
|
||||||
|
# 来宾市
|
||||||
|
'兴宾区': '来宾市',
|
||||||
|
'忻城县': '来宾市',
|
||||||
|
'象州县': '来宾市',
|
||||||
|
'武宣县': '来宾市',
|
||||||
|
'金秀瑶族自治县': '来宾市',
|
||||||
|
'合山市': '来宾市',
|
||||||
|
# 崇左市
|
||||||
|
'江州区': '崇左市',
|
||||||
|
'扶绥县': '崇左市',
|
||||||
|
'宁明县': '崇左市',
|
||||||
|
'龙州县': '崇左市',
|
||||||
|
'大新县': '崇左市',
|
||||||
|
'天等县': '崇左市',
|
||||||
|
'凭祥市': '崇左市',
|
||||||
|
# 特殊值
|
||||||
|
'高新技术产业开发区': '南宁市',
|
||||||
|
'南宁经济技术开发区': '南宁市',
|
||||||
|
'东盟经济技术开发区': '南宁市',
|
||||||
|
'高新区': '南宁市',
|
||||||
|
'武鸣县': '南宁市',
|
||||||
|
'隆安': '南宁市',
|
||||||
|
'融水县': '柳州市',
|
||||||
|
'融安': '柳州市',
|
||||||
|
'柳江县': '柳州市',
|
||||||
|
'柳邕': '柳州市',
|
||||||
|
'平果': '百色市',
|
||||||
|
'田阳': '百色市',
|
||||||
|
'灵川': '桂林市',
|
||||||
|
'临桂': '桂林市',
|
||||||
|
'龙胜县': '桂林市',
|
||||||
|
'荔浦县': '桂林市',
|
||||||
|
'恭城县': '桂林市',
|
||||||
|
'巴马县': '河池市',
|
||||||
|
'罗城': '河池市',
|
||||||
|
'合浦': '北海市',
|
||||||
|
# 特殊值2
|
||||||
|
'科园西十路24号': '南宁市',
|
||||||
|
'科园东四路5号': '南宁市',
|
||||||
|
'秀安路13-11号': '南宁市',
|
||||||
|
'科园大道31号财智时代12楼': '南宁市',
|
||||||
|
'新兴工业园创业路6号': '柳州市',
|
||||||
|
'洛维工业集中区': '柳州市',
|
||||||
|
'中马产业园区': '钦州市',
|
||||||
|
'长安工业集中区': '桂林市',
|
||||||
|
'西江四路扶典上冲29号': '梧州市',
|
||||||
|
'田东石化工业': '百色市',
|
||||||
|
}
|
||||||
|
# 对每个县级行政区划进行处理
|
||||||
|
for county, city in county_to_city.items():
|
||||||
|
yy_df = yy_df.withColumn('地址', when(yy_df['地址'].contains(county), city).otherwise(yy_df['地址']))
|
||||||
|
|
||||||
|
# 显示处理后的结果
|
||||||
|
# 假设你想按列名"column_name"进行分组,并对另一列"another_column"进行聚合操作(如求和)
|
||||||
|
yy_df = yy_df.groupBy("地址").agg(F.sum("注册资金").alias("注册资金"))
|
||||||
|
|
||||||
|
yy_df1 = yy_df.select("地址", "注册资金")
|
||||||
|
|
||||||
|
# 按照某个字段从高到低对数据进行排序
|
||||||
|
yy_df1 = yy_df1.orderBy(F.desc("注册资金"))
|
||||||
|
|
||||||
|
# 创建柱状图
|
||||||
|
# 提取企业注册地址数据并转换为列表
|
||||||
|
x_data = yy_df1.select('地址').toPandas()['地址'].tolist()
|
||||||
|
y_data = yy_df1.select('注册资金').toPandas()['注册资金'].tolist()
|
||||||
|
y_data = [format_amount(amount) for amount in y_data]
|
||||||
|
|
||||||
|
## 各市企业注册总资金可视化
|
||||||
|
bar = (
|
||||||
|
Bar()
|
||||||
|
.add_xaxis(x_data)
|
||||||
|
.add_yaxis("金额(亿元)", y_data)
|
||||||
|
# .set_series_opts(label_opts=opts.LabelOpts(formatter="{c}亿元")) # 设置y轴数据单位为万元
|
||||||
|
)
|
||||||
|
|
||||||
|
# 设置全局配置项
|
||||||
|
bar.set_global_opts(
|
||||||
|
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(interval=0)), # 调整x轴标签间隔
|
||||||
|
)
|
||||||
|
|
||||||
|
return bar
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,213 @@
|
|||||||
|
from pyspark.sql import functions as F
|
||||||
|
from pyecharts.charts import Bar
|
||||||
|
from pyspark.sql.functions import when
|
||||||
|
from pyecharts import options as opts
|
||||||
|
import pickle
|
||||||
|
from 大数据.读取Hbase函数 import HBaseDataLoading
|
||||||
|
|
||||||
|
|
||||||
|
def format_amount(amount):
|
||||||
|
return round(amount / 100000, 2)
|
||||||
|
|
||||||
|
|
||||||
|
def create_bar():
|
||||||
|
column = ['info:地址', 'info:营业收入']
|
||||||
|
|
||||||
|
df = HBaseDataLoading(column)
|
||||||
|
|
||||||
|
# 处理---各个市企业总注册资金
|
||||||
|
# 广西的14个市级名称
|
||||||
|
cities = ['南宁市', '柳州市', '桂林市', '梧州市', '北海市', '防城港市', '钦州市', '贵港市', '玉林市', '百色市',
|
||||||
|
'贺州市', '河池市', '来宾市', '崇左市']
|
||||||
|
# 对每个市进行处理
|
||||||
|
for city in cities:
|
||||||
|
df = df.withColumn('地址', when(df['地址'].contains(city[:-1]), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
# 广西的所有县级行政区划及其对应的市级行政区划
|
||||||
|
county_to_city = {
|
||||||
|
# 南宁市
|
||||||
|
'兴宁区': '南宁市',
|
||||||
|
'青秀区': '南宁市',
|
||||||
|
'江南区': '南宁市',
|
||||||
|
'西乡塘区': '南宁市',
|
||||||
|
'良庆区': '南宁市',
|
||||||
|
'邕宁区': '南宁市',
|
||||||
|
'武鸣区': '南宁市',
|
||||||
|
'隆安县': '南宁市',
|
||||||
|
'马山县': '南宁市',
|
||||||
|
'上林县': '南宁市',
|
||||||
|
'宾阳县': '南宁市',
|
||||||
|
'横县': '南宁市',
|
||||||
|
# 柳州市
|
||||||
|
'城中区': '柳州市',
|
||||||
|
'鱼峰区': '柳州市',
|
||||||
|
'柳南区': '柳州市',
|
||||||
|
'柳北区': '柳州市',
|
||||||
|
'柳江区': '柳州市',
|
||||||
|
'柳城县': '柳州市',
|
||||||
|
'鹿寨县': '柳州市',
|
||||||
|
'融安县': '柳州市',
|
||||||
|
'融水苗族自治县': '柳州市',
|
||||||
|
'三江侗族自治县': '柳州市',
|
||||||
|
# 桂林市
|
||||||
|
'秀峰区': '桂林市',
|
||||||
|
'叠彩区': '桂林市',
|
||||||
|
'象山区': '桂林市',
|
||||||
|
'七星区': '桂林市',
|
||||||
|
'雁山区': '桂林市',
|
||||||
|
'临桂区': '桂林市',
|
||||||
|
'阳朔县': '桂林市',
|
||||||
|
'灵川县': '桂林市',
|
||||||
|
'全州县': '桂林市',
|
||||||
|
'兴安县': '桂林市',
|
||||||
|
'永福县': '桂林市',
|
||||||
|
'灌阳县': '桂林市',
|
||||||
|
'龙胜各族自治县': '桂林市',
|
||||||
|
'资源县': '桂林市',
|
||||||
|
'平乐县': '桂林市',
|
||||||
|
'荔浦市': '桂林市',
|
||||||
|
'恭城瑶族自治县': '桂林市',
|
||||||
|
# 梧州市
|
||||||
|
'万秀区': '梧州市',
|
||||||
|
'长洲区': '梧州市',
|
||||||
|
'龙圩区': '梧州市',
|
||||||
|
'苍梧县': '梧州市',
|
||||||
|
'藤县': '梧州市',
|
||||||
|
'蒙山县': '梧州市',
|
||||||
|
'岑溪市': '梧州市',
|
||||||
|
# 北海市
|
||||||
|
'海城区': '北海市',
|
||||||
|
'银海区': '北海市',
|
||||||
|
'铁山港区': '北海市',
|
||||||
|
'合浦县': '北海市',
|
||||||
|
# 防城港市
|
||||||
|
'港口区': '防城港市',
|
||||||
|
'防城区': '防城港市',
|
||||||
|
'上思县': '防城港市',
|
||||||
|
'东兴市': '防城港市',
|
||||||
|
# 钦州市
|
||||||
|
'钦南区': '钦州市',
|
||||||
|
'钦北区': '钦州市',
|
||||||
|
'灵山县': '钦州市',
|
||||||
|
'浦北县': '钦州市',
|
||||||
|
# 贵港市
|
||||||
|
'港北区': '贵港市',
|
||||||
|
'港南区': '贵港市',
|
||||||
|
'覃塘区': '贵港市',
|
||||||
|
'平南县': '贵港市',
|
||||||
|
'桂平市': '贵港市',
|
||||||
|
# 玉林市
|
||||||
|
'玉州区': '玉林市',
|
||||||
|
'福绵区': '玉林市',
|
||||||
|
'容县': '玉林市',
|
||||||
|
'陆川县': '玉林市',
|
||||||
|
'博白县': '玉林市',
|
||||||
|
'兴业县': '玉林市',
|
||||||
|
'北流市': '玉林市',
|
||||||
|
# 百色市
|
||||||
|
'右江区': '百色市',
|
||||||
|
'田阳县': '百色市',
|
||||||
|
'田东县': '百色市',
|
||||||
|
'平果县': '百色市',
|
||||||
|
'德保县': '百色市',
|
||||||
|
'那坡县': '百色市',
|
||||||
|
'凌云县': '百色市',
|
||||||
|
'乐业县': '百色市',
|
||||||
|
'田林县': '百色市',
|
||||||
|
'西林县': '百色市',
|
||||||
|
'隆林各族自治县': '百色市',
|
||||||
|
'靖西市': '百色市',
|
||||||
|
# 贺州市
|
||||||
|
'八步区': '贺州市',
|
||||||
|
'平桂区': '贺州市',
|
||||||
|
'昭平县': '贺州市',
|
||||||
|
'钟山县': '贺州市',
|
||||||
|
'富川瑶族自治县': '贺州市',
|
||||||
|
# 河池市
|
||||||
|
'金城江区': '河池市',
|
||||||
|
'南丹县': '河池市',
|
||||||
|
'天峨县': '河池市',
|
||||||
|
'凤山县': '河池市',
|
||||||
|
'东兰县': '河池市',
|
||||||
|
'罗城仫佬族自治县': '河池市',
|
||||||
|
'环江毛南族自治县': '河池市',
|
||||||
|
'巴马瑶族自治县': '河池市',
|
||||||
|
'都安瑶族自治县': '河池市',
|
||||||
|
'大化瑶族自治县': '河池市',
|
||||||
|
'宜州市': '河池市',
|
||||||
|
# 来宾市
|
||||||
|
'兴宾区': '来宾市',
|
||||||
|
'忻城县': '来宾市',
|
||||||
|
'象州县': '来宾市',
|
||||||
|
'武宣县': '来宾市',
|
||||||
|
'金秀瑶族自治县': '来宾市',
|
||||||
|
'合山市': '来宾市',
|
||||||
|
# 崇左市
|
||||||
|
'江州区': '崇左市',
|
||||||
|
'扶绥县': '崇左市',
|
||||||
|
'宁明县': '崇左市',
|
||||||
|
'龙州县': '崇左市',
|
||||||
|
'大新县': '崇左市',
|
||||||
|
'天等县': '崇左市',
|
||||||
|
'凭祥市': '崇左市',
|
||||||
|
# 特殊值
|
||||||
|
'高新技术产业开发区': '南宁市',
|
||||||
|
'南宁经济技术开发区': '南宁市',
|
||||||
|
'东盟经济技术开发区': '南宁市',
|
||||||
|
'高新区': '南宁市',
|
||||||
|
'武鸣县': '南宁市',
|
||||||
|
'隆安': '南宁市',
|
||||||
|
'融水县': '柳州市',
|
||||||
|
'融安': '柳州市',
|
||||||
|
'柳江县': '柳州市',
|
||||||
|
'柳邕': '柳州市',
|
||||||
|
'平果': '百色市',
|
||||||
|
'田阳': '百色市',
|
||||||
|
'灵川': '桂林市',
|
||||||
|
'临桂': '桂林市',
|
||||||
|
'龙胜县': '桂林市',
|
||||||
|
'荔浦县': '桂林市',
|
||||||
|
'恭城县': '桂林市',
|
||||||
|
'巴马县': '河池市',
|
||||||
|
'罗城': '河池市',
|
||||||
|
'合浦': '北海市',
|
||||||
|
# 特殊值2
|
||||||
|
'科园西十路24号': '南宁市',
|
||||||
|
'科园东四路5号': '南宁市',
|
||||||
|
'秀安路13-11号': '南宁市',
|
||||||
|
'科园大道31号财智时代12楼': '南宁市',
|
||||||
|
'新兴工业园创业路6号': '柳州市',
|
||||||
|
'洛维工业集中区': '柳州市',
|
||||||
|
'中马产业园区': '钦州市',
|
||||||
|
'长安工业集中区': '桂林市',
|
||||||
|
'西江四路扶典上冲29号': '梧州市',
|
||||||
|
'田东石化工业': '百色市',
|
||||||
|
}
|
||||||
|
# 对每个县级行政区划进行处理
|
||||||
|
for county, city in county_to_city.items():
|
||||||
|
df = df.withColumn('地址', when(df['地址'].contains(county), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
# 显示处理后的结果
|
||||||
|
# 假设你想按列名"column_name"进行分组,并对另一列"another_column"进行聚合操作(如求和)
|
||||||
|
df = df.groupBy("地址").agg(F.sum("营业收入").alias("营业收入"))
|
||||||
|
|
||||||
|
# 按照某个字段从高到低对数据进行排序
|
||||||
|
df = df.orderBy(F.desc("营业收入"))
|
||||||
|
|
||||||
|
pandas_df = df.toPandas()
|
||||||
|
x_city_data = pandas_df['地址'].tolist()
|
||||||
|
y_mony_data = pandas_df['营业收入'].tolist()
|
||||||
|
y_mony_data = [format_amount(amount) for amount in y_mony_data]
|
||||||
|
bar = (
|
||||||
|
Bar()
|
||||||
|
.add_xaxis(x_city_data)
|
||||||
|
.add_yaxis("金额(亿元)", y_mony_data)
|
||||||
|
# .set_series_opts(label_opts=opts.LabelOpts(formatter="{c}万")) # 设置y轴数据单位为万元
|
||||||
|
.set_global_opts(xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(interval=0)))
|
||||||
|
)
|
||||||
|
|
||||||
|
# bar.render("各市企业营业收入总资金.html")
|
||||||
|
# with open('./Output/各市企业营业收入总资金.pkl', 'wb') as f2:
|
||||||
|
# pickle.dump(bar, f2)
|
||||||
|
|
||||||
|
return bar
|
@ -0,0 +1,224 @@
|
|||||||
|
from pyecharts.charts import Bar
|
||||||
|
from pyecharts import options as opts
|
||||||
|
from pyspark.sql.functions import when
|
||||||
|
import random
|
||||||
|
from 大数据.读取Hbase函数 import HBaseDataLoading
|
||||||
|
|
||||||
|
|
||||||
|
def create_line():
|
||||||
|
column = ['info:地址', 'info:注册时间']
|
||||||
|
|
||||||
|
df = HBaseDataLoading(column)
|
||||||
|
|
||||||
|
# 广西的14个市级名称
|
||||||
|
cities = ['南宁市', '柳州市', '桂林市', '梧州市', '北海市', '防城港市', '钦州市', '贵港市', '玉林市', '百色市',
|
||||||
|
'贺州市', '河池市', '来宾市', '崇左市']
|
||||||
|
# 对每个市进行处理
|
||||||
|
for city in cities:
|
||||||
|
df = df.withColumn('地址', when(df['地址'].contains(city[:-1]), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
# 广西的所有县级行政区划及其对应的市级行政区划
|
||||||
|
county_to_city = {
|
||||||
|
# 南宁市
|
||||||
|
'兴宁区': '南宁市',
|
||||||
|
'青秀区': '南宁市',
|
||||||
|
'江南区': '南宁市',
|
||||||
|
'西乡塘区': '南宁市',
|
||||||
|
'良庆区': '南宁市',
|
||||||
|
'邕宁区': '南宁市',
|
||||||
|
'武鸣区': '南宁市',
|
||||||
|
'隆安县': '南宁市',
|
||||||
|
'马山县': '南宁市',
|
||||||
|
'上林县': '南宁市',
|
||||||
|
'宾阳县': '南宁市',
|
||||||
|
'横县': '南宁市',
|
||||||
|
# 柳州市
|
||||||
|
'城中区': '柳州市',
|
||||||
|
'鱼峰区': '柳州市',
|
||||||
|
'柳南区': '柳州市',
|
||||||
|
'柳北区': '柳州市',
|
||||||
|
'柳江区': '柳州市',
|
||||||
|
'柳城县': '柳州市',
|
||||||
|
'鹿寨县': '柳州市',
|
||||||
|
'融安县': '柳州市',
|
||||||
|
'融水苗族自治县': '柳州市',
|
||||||
|
'三江侗族自治县': '柳州市',
|
||||||
|
# 桂林市
|
||||||
|
'秀峰区': '桂林市',
|
||||||
|
'叠彩区': '桂林市',
|
||||||
|
'象山区': '桂林市',
|
||||||
|
'七星区': '桂林市',
|
||||||
|
'雁山区': '桂林市',
|
||||||
|
'临桂区': '桂林市',
|
||||||
|
'阳朔县': '桂林市',
|
||||||
|
'灵川县': '桂林市',
|
||||||
|
'全州县': '桂林市',
|
||||||
|
'兴安县': '桂林市',
|
||||||
|
'永福县': '桂林市',
|
||||||
|
'灌阳县': '桂林市',
|
||||||
|
'龙胜各族自治县': '桂林市',
|
||||||
|
'资源县': '桂林市',
|
||||||
|
'平乐县': '桂林市',
|
||||||
|
'荔浦市': '桂林市',
|
||||||
|
'恭城瑶族自治县': '桂林市',
|
||||||
|
# 梧州市
|
||||||
|
'万秀区': '梧州市',
|
||||||
|
'长洲区': '梧州市',
|
||||||
|
'龙圩区': '梧州市',
|
||||||
|
'苍梧县': '梧州市',
|
||||||
|
'藤县': '梧州市',
|
||||||
|
'蒙山县': '梧州市',
|
||||||
|
'岑溪市': '梧州市',
|
||||||
|
# 北海市
|
||||||
|
'海城区': '北海市',
|
||||||
|
'银海区': '北海市',
|
||||||
|
'铁山港区': '北海市',
|
||||||
|
'合浦县': '北海市',
|
||||||
|
# 防城港市
|
||||||
|
'港口区': '防城港市',
|
||||||
|
'防城区': '防城港市',
|
||||||
|
'上思县': '防城港市',
|
||||||
|
'东兴市': '防城港市',
|
||||||
|
# 钦州市
|
||||||
|
'钦南区': '钦州市',
|
||||||
|
'钦北区': '钦州市',
|
||||||
|
'灵山县': '钦州市',
|
||||||
|
'浦北县': '钦州市',
|
||||||
|
# 贵港市
|
||||||
|
'港北区': '贵港市',
|
||||||
|
'港南区': '贵港市',
|
||||||
|
'覃塘区': '贵港市',
|
||||||
|
'平南县': '贵港市',
|
||||||
|
'桂平市': '贵港市',
|
||||||
|
# 玉林市
|
||||||
|
'玉州区': '玉林市',
|
||||||
|
'福绵区': '玉林市',
|
||||||
|
'容县': '玉林市',
|
||||||
|
'陆川县': '玉林市',
|
||||||
|
'博白县': '玉林市',
|
||||||
|
'兴业县': '玉林市',
|
||||||
|
'北流市': '玉林市',
|
||||||
|
# 百色市
|
||||||
|
'右江区': '百色市',
|
||||||
|
'田阳县': '百色市',
|
||||||
|
'田东县': '百色市',
|
||||||
|
'平果县': '百色市',
|
||||||
|
'德保县': '百色市',
|
||||||
|
'那坡县': '百色市',
|
||||||
|
'凌云县': '百色市',
|
||||||
|
'乐业县': '百色市',
|
||||||
|
'田林县': '百色市',
|
||||||
|
'西林县': '百色市',
|
||||||
|
'隆林各族自治县': '百色市',
|
||||||
|
'靖西市': '百色市',
|
||||||
|
# 贺州市
|
||||||
|
'八步区': '贺州市',
|
||||||
|
'平桂区': '贺州市',
|
||||||
|
'昭平县': '贺州市',
|
||||||
|
'钟山县': '贺州市',
|
||||||
|
'富川瑶族自治县': '贺州市',
|
||||||
|
# 河池市
|
||||||
|
'金城江区': '河池市',
|
||||||
|
'南丹县': '河池市',
|
||||||
|
'天峨县': '河池市',
|
||||||
|
'凤山县': '河池市',
|
||||||
|
'东兰县': '河池市',
|
||||||
|
'罗城仫佬族自治县': '河池市',
|
||||||
|
'环江毛南族自治县': '河池市',
|
||||||
|
'巴马瑶族自治县': '河池市',
|
||||||
|
'都安瑶族自治县': '河池市',
|
||||||
|
'大化瑶族自治县': '河池市',
|
||||||
|
'宜州市': '河池市',
|
||||||
|
# 来宾市
|
||||||
|
'兴宾区': '来宾市',
|
||||||
|
'忻城县': '来宾市',
|
||||||
|
'象州县': '来宾市',
|
||||||
|
'武宣县': '来宾市',
|
||||||
|
'金秀瑶族自治县': '来宾市',
|
||||||
|
'合山市': '来宾市',
|
||||||
|
# 崇左市
|
||||||
|
'江州区': '崇左市',
|
||||||
|
'扶绥县': '崇左市',
|
||||||
|
'宁明县': '崇左市',
|
||||||
|
'龙州县': '崇左市',
|
||||||
|
'大新县': '崇左市',
|
||||||
|
'天等县': '崇左市',
|
||||||
|
'凭祥市': '崇左市',
|
||||||
|
# 特殊值
|
||||||
|
'高新技术产业开发区': '南宁市',
|
||||||
|
'南宁经济技术开发区': '南宁市',
|
||||||
|
'东盟经济技术开发区': '南宁市',
|
||||||
|
'高新区': '南宁市',
|
||||||
|
'武鸣县': '南宁市',
|
||||||
|
'隆安': '南宁市',
|
||||||
|
'融水县': '柳州市',
|
||||||
|
'融安': '柳州市',
|
||||||
|
'柳江县': '柳州市',
|
||||||
|
'柳邕': '柳州市',
|
||||||
|
'平果': '百色市',
|
||||||
|
'田阳': '百色市',
|
||||||
|
'灵川': '桂林市',
|
||||||
|
'临桂': '桂林市',
|
||||||
|
'龙胜县': '桂林市',
|
||||||
|
'荔浦县': '桂林市',
|
||||||
|
'恭城县': '桂林市',
|
||||||
|
'巴马县': '河池市',
|
||||||
|
'罗城': '河池市',
|
||||||
|
'合浦': '北海市',
|
||||||
|
# 特殊值2
|
||||||
|
'科园西十路24号': '南宁市',
|
||||||
|
'科园东四路5号': '南宁市',
|
||||||
|
'秀安路13-11号': '南宁市',
|
||||||
|
'科园大道31号财智时代12楼': '南宁市',
|
||||||
|
'新兴工业园创业路6号': '柳州市',
|
||||||
|
'洛维工业集中区': '柳州市',
|
||||||
|
'中马产业园区': '钦州市',
|
||||||
|
'长安工业集中区': '桂林市',
|
||||||
|
'西江四路扶典上冲29号': '梧州市',
|
||||||
|
'田东石化工业': '百色市',
|
||||||
|
}
|
||||||
|
# 对每个县级行政区划进行处理
|
||||||
|
for county, city in county_to_city.items():
|
||||||
|
df = df.withColumn('地址', when(df['地址'].contains(county), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
df = df.filter(df["注册时间"] >= 2008)
|
||||||
|
# 聚合处理数据
|
||||||
|
df = df.groupBy("地址").pivot("注册时间").count()
|
||||||
|
df = df.fillna(0)
|
||||||
|
df = df.withColumn("sum", sum(df[col] for col in df.columns[1:]))
|
||||||
|
df = df.orderBy(df["sum"])
|
||||||
|
|
||||||
|
# 转换为Pandas
|
||||||
|
citys = df.select('地址').toPandas()['地址'].tolist()
|
||||||
|
|
||||||
|
df = df.drop("地址")
|
||||||
|
df = df.drop("sum")
|
||||||
|
years = df.columns
|
||||||
|
|
||||||
|
data = []
|
||||||
|
for row in df.rdd.collect():
|
||||||
|
t = row.asDict()
|
||||||
|
curr = []
|
||||||
|
for k, v in t.items():
|
||||||
|
curr.append(v)
|
||||||
|
data.append(curr)
|
||||||
|
|
||||||
|
bar = stacked_bar(years, citys, data)
|
||||||
|
|
||||||
|
return bar
|
||||||
|
|
||||||
|
|
||||||
|
def stacked_bar(years,cities,data) -> Bar:
|
||||||
|
bar = (
|
||||||
|
Bar()
|
||||||
|
.add_xaxis(cities)
|
||||||
|
)
|
||||||
|
|
||||||
|
# 添加每年的数据
|
||||||
|
for i, year in enumerate(years):
|
||||||
|
bar.add_yaxis(year, [data[j][i] for j in range(len(cities))], stack = "stack1")
|
||||||
|
|
||||||
|
bar.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
|
||||||
|
bar.set_global_opts(xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(interval=0)))
|
||||||
|
|
||||||
|
return bar
|
@ -0,0 +1,261 @@
|
|||||||
|
from pyspark.sql import functions as F
|
||||||
|
from pyspark.sql.functions import when
|
||||||
|
from pyecharts.charts import Bar
|
||||||
|
from pyecharts.charts import Line
|
||||||
|
from pyecharts import options as opts
|
||||||
|
from 大数据.读取Hbase函数 import HBaseDataLoading
|
||||||
|
|
||||||
|
|
||||||
|
def create_line_bar():
|
||||||
|
# 需要的列族:列限定符
|
||||||
|
column = ['info:地址', 'info:本公司是否为上市(挂牌)企业主体', 'info:工业总产值(当年价格)', 'info:从业人员期末人数',
|
||||||
|
'info:其中:博士', 'info:其中:硕士', 'info:具有大学本科学历(位)人员', 'info:具有大学专科学历人员']
|
||||||
|
|
||||||
|
df = HBaseDataLoading(column)
|
||||||
|
|
||||||
|
# 过滤出"主要外资来源国别或地区代码"列不为空的行
|
||||||
|
# df = df.filter(F.col("本公司是否为上市(挂牌)企业主体") != 0)
|
||||||
|
|
||||||
|
# 上市公司数量
|
||||||
|
# print(df.count())
|
||||||
|
|
||||||
|
# 广西的14个市级名称
|
||||||
|
cities = ['南宁市', '柳州市', '桂林市', '梧州市', '北海市', '防城港市', '钦州市', '贵港市', '玉林市', '百色市',
|
||||||
|
'贺州市', '河池市', '来宾市', '崇左市']
|
||||||
|
# 对每个市进行处理
|
||||||
|
for city in cities:
|
||||||
|
df = df.withColumn('地址', when(df['地址'].contains(city[:-1]), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
# 广西的所有县级行政区划及其对应的市级行政区划
|
||||||
|
county_to_city = {
|
||||||
|
# 南宁市
|
||||||
|
'兴宁区': '南宁市',
|
||||||
|
'青秀区': '南宁市',
|
||||||
|
'江南区': '南宁市',
|
||||||
|
'西乡塘区': '南宁市',
|
||||||
|
'良庆区': '南宁市',
|
||||||
|
'邕宁区': '南宁市',
|
||||||
|
'武鸣区': '南宁市',
|
||||||
|
'隆安县': '南宁市',
|
||||||
|
'马山县': '南宁市',
|
||||||
|
'上林县': '南宁市',
|
||||||
|
'宾阳县': '南宁市',
|
||||||
|
'横县': '南宁市',
|
||||||
|
# 柳州市
|
||||||
|
'城中区': '柳州市',
|
||||||
|
'鱼峰区': '柳州市',
|
||||||
|
'柳南区': '柳州市',
|
||||||
|
'柳北区': '柳州市',
|
||||||
|
'柳江区': '柳州市',
|
||||||
|
'柳城县': '柳州市',
|
||||||
|
'鹿寨县': '柳州市',
|
||||||
|
'融安县': '柳州市',
|
||||||
|
'融水苗族自治县': '柳州市',
|
||||||
|
'三江侗族自治县': '柳州市',
|
||||||
|
# 桂林市
|
||||||
|
'秀峰区': '桂林市',
|
||||||
|
'叠彩区': '桂林市',
|
||||||
|
'象山区': '桂林市',
|
||||||
|
'七星区': '桂林市',
|
||||||
|
'雁山区': '桂林市',
|
||||||
|
'临桂区': '桂林市',
|
||||||
|
'阳朔县': '桂林市',
|
||||||
|
'灵川县': '桂林市',
|
||||||
|
'全州县': '桂林市',
|
||||||
|
'兴安县': '桂林市',
|
||||||
|
'永福县': '桂林市',
|
||||||
|
'灌阳县': '桂林市',
|
||||||
|
'龙胜各族自治县': '桂林市',
|
||||||
|
'资源县': '桂林市',
|
||||||
|
'平乐县': '桂林市',
|
||||||
|
'荔浦市': '桂林市',
|
||||||
|
'恭城瑶族自治县': '桂林市',
|
||||||
|
# 梧州市
|
||||||
|
'万秀区': '梧州市',
|
||||||
|
'长洲区': '梧州市',
|
||||||
|
'龙圩区': '梧州市',
|
||||||
|
'苍梧县': '梧州市',
|
||||||
|
'藤县': '梧州市',
|
||||||
|
'蒙山县': '梧州市',
|
||||||
|
'岑溪市': '梧州市',
|
||||||
|
# 北海市
|
||||||
|
'海城区': '北海市',
|
||||||
|
'银海区': '北海市',
|
||||||
|
'铁山港区': '北海市',
|
||||||
|
'合浦县': '北海市',
|
||||||
|
# 防城港市
|
||||||
|
'港口区': '防城港市',
|
||||||
|
'防城区': '防城港市',
|
||||||
|
'上思县': '防城港市',
|
||||||
|
'东兴市': '防城港市',
|
||||||
|
# 钦州市
|
||||||
|
'钦南区': '钦州市',
|
||||||
|
'钦北区': '钦州市',
|
||||||
|
'灵山县': '钦州市',
|
||||||
|
'浦北县': '钦州市',
|
||||||
|
# 贵港市
|
||||||
|
'港北区': '贵港市',
|
||||||
|
'港南区': '贵港市',
|
||||||
|
'覃塘区': '贵港市',
|
||||||
|
'平南县': '贵港市',
|
||||||
|
'桂平市': '贵港市',
|
||||||
|
# 玉林市
|
||||||
|
'玉州区': '玉林市',
|
||||||
|
'福绵区': '玉林市',
|
||||||
|
'容县': '玉林市',
|
||||||
|
'陆川县': '玉林市',
|
||||||
|
'博白县': '玉林市',
|
||||||
|
'兴业县': '玉林市',
|
||||||
|
'北流市': '玉林市',
|
||||||
|
# 百色市
|
||||||
|
'右江区': '百色市',
|
||||||
|
'田阳县': '百色市',
|
||||||
|
'田东县': '百色市',
|
||||||
|
'平果县': '百色市',
|
||||||
|
'德保县': '百色市',
|
||||||
|
'那坡县': '百色市',
|
||||||
|
'凌云县': '百色市',
|
||||||
|
'乐业县': '百色市',
|
||||||
|
'田林县': '百色市',
|
||||||
|
'西林县': '百色市',
|
||||||
|
'隆林各族自治县': '百色市',
|
||||||
|
'靖西市': '百色市',
|
||||||
|
# 贺州市
|
||||||
|
'八步区': '贺州市',
|
||||||
|
'平桂区': '贺州市',
|
||||||
|
'昭平县': '贺州市',
|
||||||
|
'钟山县': '贺州市',
|
||||||
|
'富川瑶族自治县': '贺州市',
|
||||||
|
# 河池市
|
||||||
|
'金城江区': '河池市',
|
||||||
|
'南丹县': '河池市',
|
||||||
|
'天峨县': '河池市',
|
||||||
|
'凤山县': '河池市',
|
||||||
|
'东兰县': '河池市',
|
||||||
|
'罗城仫佬族自治县': '河池市',
|
||||||
|
'环江毛南族自治县': '河池市',
|
||||||
|
'巴马瑶族自治县': '河池市',
|
||||||
|
'都安瑶族自治县': '河池市',
|
||||||
|
'大化瑶族自治县': '河池市',
|
||||||
|
'宜州市': '河池市',
|
||||||
|
# 来宾市
|
||||||
|
'兴宾区': '来宾市',
|
||||||
|
'忻城县': '来宾市',
|
||||||
|
'象州县': '来宾市',
|
||||||
|
'武宣县': '来宾市',
|
||||||
|
'金秀瑶族自治县': '来宾市',
|
||||||
|
'合山市': '来宾市',
|
||||||
|
# 崇左市
|
||||||
|
'江州区': '崇左市',
|
||||||
|
'扶绥县': '崇左市',
|
||||||
|
'宁明县': '崇左市',
|
||||||
|
'龙州县': '崇左市',
|
||||||
|
'大新县': '崇左市',
|
||||||
|
'天等县': '崇左市',
|
||||||
|
'凭祥市': '崇左市',
|
||||||
|
# 特殊值
|
||||||
|
'高新技术产业开发区': '南宁市',
|
||||||
|
'南宁经济技术开发区': '南宁市',
|
||||||
|
'东盟经济技术开发区': '南宁市',
|
||||||
|
'高新区': '南宁市',
|
||||||
|
'武鸣县': '南宁市',
|
||||||
|
'隆安': '南宁市',
|
||||||
|
'融水县': '柳州市',
|
||||||
|
'融安': '柳州市',
|
||||||
|
'柳江县': '柳州市',
|
||||||
|
'柳邕': '柳州市',
|
||||||
|
'平果': '百色市',
|
||||||
|
'田阳': '百色市',
|
||||||
|
'灵川': '桂林市',
|
||||||
|
'临桂': '桂林市',
|
||||||
|
'龙胜县': '桂林市',
|
||||||
|
'荔浦县': '桂林市',
|
||||||
|
'恭城县': '桂林市',
|
||||||
|
'巴马县': '河池市',
|
||||||
|
'罗城': '河池市',
|
||||||
|
'合浦': '北海市',
|
||||||
|
# 特殊值2
|
||||||
|
'科园西十路24号': '南宁市',
|
||||||
|
'科园东四路5号': '南宁市',
|
||||||
|
'秀安路13-11号': '南宁市',
|
||||||
|
'科园大道31号财智时代12楼': '南宁市',
|
||||||
|
'新兴工业园创业路6号': '柳州市',
|
||||||
|
'洛维工业集中区': '柳州市',
|
||||||
|
'中马产业园区': '钦州市',
|
||||||
|
'长安工业集中区': '桂林市',
|
||||||
|
'西江四路扶典上冲29号': '梧州市',
|
||||||
|
'田东石化工业': '百色市',
|
||||||
|
}
|
||||||
|
# 对每个县级行政区划进行处理
|
||||||
|
for county, city in county_to_city.items():
|
||||||
|
df = df.withColumn('地址', when(df['地址'].contains(county), city).otherwise(df['地址']))
|
||||||
|
|
||||||
|
# 转成整型
|
||||||
|
df = df.withColumn("工业总产值(当年价格)", df["工业总产值(当年价格)"].cast('integer'))
|
||||||
|
|
||||||
|
# 按市分组,计算每个市的工业总产值和人员分布
|
||||||
|
df_grouped = df.groupBy('地址').agg(
|
||||||
|
{"工业总产值(当年价格)": "sum",
|
||||||
|
"从业人员期末人数": "sum",
|
||||||
|
"其中:博士": "sum",
|
||||||
|
"其中:硕士": "sum",
|
||||||
|
"具有大学本科学历(位)人员": "sum",
|
||||||
|
"具有大学专科学历人员": "sum"}
|
||||||
|
)
|
||||||
|
|
||||||
|
# 改名
|
||||||
|
df_grouped = df_grouped.withColumnRenamed('sum(工业总产值(当年价格))', '工业总产值')
|
||||||
|
df_grouped = df_grouped.withColumnRenamed('sum(从业人员期末人数)', '从业人员期末人数')
|
||||||
|
df_grouped = df_grouped.withColumnRenamed('sum(其中:博士)', '博士总数')
|
||||||
|
df_grouped = df_grouped.withColumnRenamed('sum(其中:硕士)', '硕士总数')
|
||||||
|
df_grouped = df_grouped.withColumnRenamed('sum(具有大学本科学历(位)人员)', '本科生总数')
|
||||||
|
df_grouped = df_grouped.withColumnRenamed('sum(具有大学专科学历人员)', '专科生总数')
|
||||||
|
|
||||||
|
# 排序
|
||||||
|
df_grouped_sorted1 = df_grouped.orderBy('工业总产值')
|
||||||
|
df_grouped_sorted2 = df_grouped.orderBy('从业人员期末人数')
|
||||||
|
|
||||||
|
# 输出
|
||||||
|
df_grouped.show()
|
||||||
|
|
||||||
|
# 可视化
|
||||||
|
# 提取x轴和y轴的数据
|
||||||
|
x_data = [row['地址'] for row in df_grouped_sorted1.collect()]
|
||||||
|
y_data = [round(row['工业总产值'] / 100000, 2) for row in df_grouped_sorted1.collect()]
|
||||||
|
x_data1 = [row['地址'] for row in df_grouped_sorted2.collect()]
|
||||||
|
y_data1 = [row['博士总数'] for row in df_grouped_sorted2.collect()]
|
||||||
|
y_data2 = [row['硕士总数'] for row in df_grouped_sorted2.collect()]
|
||||||
|
y_data3 = [row['本科生总数'] for row in df_grouped_sorted2.collect()]
|
||||||
|
y_data4 = [row['专科生总数'] for row in df_grouped_sorted2.collect()]
|
||||||
|
|
||||||
|
# 创建折线图
|
||||||
|
line = (
|
||||||
|
Line()
|
||||||
|
.add_xaxis(x_data)
|
||||||
|
.add_yaxis("工业总产值(亿元)", y_data)
|
||||||
|
.set_global_opts(
|
||||||
|
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(interval=0)) # 调整x轴标签间隔)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
# 创建柱状图
|
||||||
|
bar = (
|
||||||
|
Bar()
|
||||||
|
.add_xaxis(x_data1)
|
||||||
|
.add_yaxis("专科", y_data4, stack="stack1")
|
||||||
|
.add_yaxis("本科", y_data3, stack="stack1")
|
||||||
|
.add_yaxis("硕士", y_data2, stack="stack1")
|
||||||
|
.add_yaxis("博士", y_data1, stack="stack1")
|
||||||
|
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
|
||||||
|
.set_global_opts(
|
||||||
|
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(interval=0)) # 调整x轴标签间隔
|
||||||
|
# xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-30)) # 调整x轴标签角度
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
# 返回对象
|
||||||
|
return line, bar
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
create_line_bar()
|
Binary file not shown.
@ -0,0 +1,56 @@
|
|||||||
|
import happybase
|
||||||
|
from pyspark.sql import SparkSession
|
||||||
|
|
||||||
|
# 连接到HBase
|
||||||
|
connection = happybase.Connection('192.168.142.144')
|
||||||
|
|
||||||
|
# 输出所有表名
|
||||||
|
print(connection.tables())
|
||||||
|
|
||||||
|
# 检查表是否存在
|
||||||
|
if b'mytest_table' in connection.tables():
|
||||||
|
# 如果表存在,删除表
|
||||||
|
connection.disable_table('mytest_table')
|
||||||
|
connection.delete_table('mytest_table')
|
||||||
|
|
||||||
|
# 创建表
|
||||||
|
connection.create_table(
|
||||||
|
'mytest_table',
|
||||||
|
{'info': dict(max_versions=10)}
|
||||||
|
)
|
||||||
|
|
||||||
|
# 获取表
|
||||||
|
table = connection.table('mytest_table')
|
||||||
|
|
||||||
|
# 创建Spark会话
|
||||||
|
spark = SparkSession.builder.appName("ExcelDataCleaning").master('local').getOrCreate()
|
||||||
|
|
||||||
|
# 读取CSV文件为Spark DataFrame
|
||||||
|
df = spark.read.csv("./Output/数据清洗结果.csv", header=True, inferSchema=True)
|
||||||
|
|
||||||
|
# 将Spark DataFrame转换为Pandas DataFrame
|
||||||
|
pd = df.toPandas()
|
||||||
|
|
||||||
|
# 将Pandas DataFrame的数据插入到HBase
|
||||||
|
for index, row in pd.iterrows():
|
||||||
|
data = {
|
||||||
|
f'info:{column}'.encode(): str(row[column]).encode() for column in row.index
|
||||||
|
}
|
||||||
|
table.put(str(row['序号']).encode(), data)
|
||||||
|
|
||||||
|
# 查询数据
|
||||||
|
# for key, data in table.scan():
|
||||||
|
# key = key.decode()
|
||||||
|
# data = {k.decode(): v.decode() for k, v in data.items()}
|
||||||
|
# print(key, data)
|
||||||
|
|
||||||
|
# 查询前20行数据
|
||||||
|
for i, (key, data) in enumerate(table.scan()):
|
||||||
|
if i >= 20:
|
||||||
|
break
|
||||||
|
key = key.decode()
|
||||||
|
data = {k.decode(): v.decode() for k, v in data.items()}
|
||||||
|
print(key, data)
|
||||||
|
|
||||||
|
# 关闭连接
|
||||||
|
connection.close()
|
@ -0,0 +1,34 @@
|
|||||||
|
import happybase
|
||||||
|
from pyspark.sql import SparkSession, Row
|
||||||
|
import os
|
||||||
|
|
||||||
|
def HBaseDataLoading(column):
|
||||||
|
# 指定python环境
|
||||||
|
os.environ['PYSPARK_PYTHON'] = 'D:\Program Files\Python37\python.exe'
|
||||||
|
|
||||||
|
# 创建Spark会话
|
||||||
|
spark = SparkSession.builder.appName("HBaseDataLoading").master('local').getOrCreate()
|
||||||
|
|
||||||
|
# 连接到HBase
|
||||||
|
connection = happybase.Connection('192.168.142.144')
|
||||||
|
|
||||||
|
# 获取表
|
||||||
|
table = connection.table('mytest_table')
|
||||||
|
|
||||||
|
# 定义列名
|
||||||
|
columns = column
|
||||||
|
|
||||||
|
# 查询数据
|
||||||
|
data = []
|
||||||
|
for key, row in table.scan(columns=[col.encode('utf-8') for col in columns]):
|
||||||
|
row_data = {col.replace('info:', ''): row[col.encode('utf-8')].decode() for col in columns}
|
||||||
|
row_data['序号'] = key.decode()
|
||||||
|
data.append(row_data)
|
||||||
|
|
||||||
|
# 关闭连接
|
||||||
|
connection.close()
|
||||||
|
|
||||||
|
# 将数据转换为Spark DataFrame
|
||||||
|
spark_df = spark.createDataFrame([Row(**{k: str(v) for k, v in i.items()}) for i in data])
|
||||||
|
|
||||||
|
return spark_df
|
Loading…
Reference in new issue