基于Spark与大型语言模型的融合应用

首先将涨跌幅字段转换为数值型,以便进行条件判断。使用withColumn方法根据涨跌幅的大小,定义市场环境规则并分类数据为“牛市”、“熊市”和“波动市”,添加对应列“market_condition”。使用groupBy方法按市场环境对DataFrame进行分组,使用agg方法统计不同市场环境下的股票数据,包括交易天数、总交易量和总peTTM。进一步计算每个市场环境下的平均交易量和平均peTTM。代码如下:

6.分析贵州茅台近20年的最高股价和最低股价:直接使用SQL查询获取贵州茅台最高股价和最低股价对应的日期和数值,并使用orderBy方法对结果进行排序。这里注意需要把close转换为数值以确保正确比较。代码如下:

7.计算上周的平均涨幅:使用SQL查询计算上周的平均涨幅,通过AVG函数实现,同时结合BETWEEN条件来筛选上周的日期范围。代码如下:

8.统计每年上涨和下跌天数使用groupBy方法按年份对DataFrame进行分组。使用agg方法计算每年上涨和下跌天数,通过sum和when函数实现,并添加列计算上涨和下跌天数占总天数的比值。代码如下:

本实验在本地构建了LLM与数据库的结合的pipeline,接下来是详细的介绍。首先我们读入HDFS的文件,对其进行数据格式的转换,并构建视图用于SQL查询,代码如下:

spark=SparkSession.builder.getOrCreate()df=spark.read.csv("stock_everyday_data.csv",header=True)#将a_stock_everyday_data中除了trade_date的字符串都转换为数值,以确保使用sql语句时能正常比较forcolindf.columns:ifcol!="trade_date":df=df.withColumn(col,df[col].cast("float"))df.createOrReplaceTempView("a_stock_everyday_data")接下来,我们需要在本地加载LLM,模型参数量为7B,大约占用17G显存,这里使用Transformers库进行便捷部署:

fromtransformersimportAutoTokenizer,AutoModelForCausalLMmodel_name="defog/sqlcoder-7b-2"tokenizer=AutoTokenizer.from_pretrained(model_name)model=AutoModelForCausalLM.from_pretrained(model_name,trust_remote_code=True,torch_dtype=torch.float16,#load_in_4bit=True,device_map="auto",use_cache=True,)在输入大语言模型时,需要一同给出我们的数据库结构,以便LLM能给出正确的SQL查询语句,因此我们需要构建Prompt模版,指明表格结构,在接收到用户的问题后,替换模版中的{question}内容,从而输入大语言模型,代码如下:

prompt="""<|begin_of_text|><|start_header_id|>user<|end_header_id|>GenerateaSQLquerytoanswerthisquestion:`{question}`DDLstatements:CREATETABLEa_stock_everyday_data(trade_dateDATE,--Tradingdate交易日期,以纯数字形式给出,例如20240515openDECIMAL(10,2),--Openingprice开盘价highDECIMAL(10,2),--Highestprice当日最高价lowDECIMAL(10,2),--Lowestprice当日最低价closeDECIMAL(10,2),--Closingprice收盘价pre_closeDECIMAL(10,2),--Previousclosingprice前一天的收盘价changeDECIMAL(10,2),--Pricechange股价变化pct_chgDECIMAL(10,2),--Pricechangepercentage股价变化率volBIGINT,--Tradingvolume成交额amountDECIMAL(15,2),--Tradingamount成交量);<|eot_id|><|start_header_id|>assistant<|end_header_id|>ThefollowingSQLquerybestanswersthequestion`{question}`:```sql"""构建完成模型输入后,我们需要调用LLM并生成对应结果,在LLM输出结果后,还需要进行解析和格式化处理,为了便于代码复用,我们将调用流程封装为以下函数:

defgenerate_query(question):updated_prompt=prompt.format(question=question)inputs=tokenizer(updated_prompt,return_tensors="pt").to("cuda")#生成SQL语句的参数,确保do_sample=False以保证生成的SQL语句是确定性的并且可复现generated_ids=model.generate(**inputs,num_return_sequences=1,eos_token_id=tokenizer.eos_token_id,pad_token_id=tokenizer.eos_token_id,max_new_tokens=400,do_sample=False,num_beams=1,)outputs=tokenizer.batch_decode(generated_ids,skip_special_tokens=True)torch.cuda.empty_cache()torch.cuda.synchronize()returnoutputs[0].split("```sql")[1].split(";")[0]最后,是接收用户输入并调用模型获取SQL查询语句,在通过spark进行SQL查询的代码:

为了使分析结果更加直观,本次实验还根据不同的分析项目设计了不同可视化结果。可视化主要通过matplotlib实现。

这里使用柱状图展示每年股票的平均交易量,可以直观体现出每一年的交易活跃度,其中2015年为整个市场的牛市,交易量显著高于其它年份。代码如下:

同样使用柱状图展示,代码如下:

为了直观展示各年之间上涨的下跌天数的对比,这里采用堆叠的柱状图进行可视化,并以绿色和红色直观的代表上涨和下跌。代码如下:

为了体现出不同环境下各个指标的区别,这里选择簇状柱状图进行可视化,同时,考虑到各个指标的数据量级不一样,还需要进行适当放缩,以便其在同一张图上显示。

当需要反映数据趋势时,通常选择折线图,股价的波动也适合用折线图来表示。

THE END
1.贵州茅台1519.00(2.99%)个股资讯新浪财经加入自选股 桌面快捷方式 客户端 贵州茅台(600519.SH) -46.80 -2.99% 1519.00 涨停:1722.38 跌停:1409.22 2024-12-13 15:00:01 今开: 1550.01成交量: 4.95万手振幅: 2.31% 最高: 1554.99成交额: 75.81亿元换手率: 0.39% 最低: 1518.88总市值: 19081.64亿市净率: 8.03 昨收: 1565.80流通市值: 19081.64亿http://vip.stock.finance.sina.com.cn/corp/view/vCB_AllNewsStock.php?symbol=sh600519&Page=11
2.贵州茅台(600519)股票股价股价行情财报数据报告公司地址:贵州省遵义市仁怀市茅台镇 公司电话: 贵州茅台的热门讨论 茅台的衰退周期即将到来 坚韧执着12-10 23:43 今天接到一个营销电话,说我们公司享有以1499元每瓶的价格,购买1000箱飞天茅台的权益。稍后,会有当地茅台经销商联系我。我毫不犹豫的说:不需要!就挂断电话了。 https://xueqiu.com/S/SH600519/
3.贵州茅台k线分析报告理想股票技术论坛关于贵州茅台的K线分析,包括价格走势、交易量的变化、市场趋势等详细分析。 ,理想股票技术论坛https://www.55188.com/tag-8732875.html
4.缠论108课哈喽,各位缠友们下午好,欢迎大家进入到缠中说禅论的108课的学习。我是禅师很高兴能和大家一起学习研讨有关缠论。今天我们来学习的是缠中说禅论的第14课:股票市场中,贵州茅台实际案例分析。 之前在前面的几节课我们说了非常多的理论上面的知识,今天我们具体来用一只实际的股票,说一下具体的操作程序用法,以贵州茅https://blog.csdn.net/weixin_35928736/article/details/112413307
5.贵州茅台股票分析报告.docx贵州茅台股票分析报告 四、公司股票技术分析 上图为贵州茅台60分K线图,从图中可以看出贵州茅台自二月份以来涨跌起伏不定,最高点达到188.50,最低点为160.45,不过好的一点是自4月9日以后又开始小幅度的上涨。 第8页共14页第8页 上1页下1页 相关文档 https://wendang.xuehi.cn/doc/3msp83lm4h45r9dzj7b1c02ayetufpli-8.html
6.贵州茅台股票价格行情,贵州茅台股票代码669460内容导航: 求贵州茅台15年,16年,17年的每股股票市价贵州茅台酒的股票价格从一开始到现在的走势贵州茅台原始股价是多少?贵州茅台股价是多少 贵州茅台股票价格上涨了多少贵州茅台股票k线分析贵州茅台酒股份有限公司基本面分析 Q1:求贵州茅台15年,16年,17年的每股股票市价 205 327 697 分别是收年线的价格Q2:贵州茅台酒https://mnews.tianyancha.com/ll_i44z09qngd.html?rh=2161325294-c379209923
7.贵州茅台股票分析报告.pptx03形态分析通过K线图等形态分析工具,识别贵州茅台股票的价格形态和趋势,预测其未来走势。01股票走势分析贵州茅台股票的历史价格走势、成交量和换手率等,评估其市场趋势和交易活跃度。02技术指标运用常用的技术指标如移动平均线、相对强弱指数、MACD等,分析贵州茅台股票的买卖信号和趋势。技术面评估方法及结果 https://max.book118.com/html/2024/0318/8044075117006046.shtm
8.贵州茅台价值分析(精选8篇)贵州茅台价值分析(精选8篇) 1 前言贵州德江国土总面积2072平方公里,辖20个乡镇,总人口49.1万人,土家、苗、仡佬等少数民族人口占63.5%,是“中国傩戏之乡”。傩堂戏又称傩戏和“杠神”。它是一种佩戴面具表演的宗教祭祀戏剧,也是一种古老的民族民间风俗文化活动,被誉为“中https://www.360wenmi.com/f/fileuk93u6qd.html
9.茅台2008年股价多少,08年股市发展趋势3,600519茅台2008年股价最高能到多少 4,2008年股指1千6百点个股最高价位是多少 5,2008年飞天茅台现在一瓶价值多少钱 6,贵州茅台最高的时候多少股 7,2008年茅台酒的股票价 8,08年8月十五日A股股价最高最低的四只股票是什么 9,贵州茅台股票分析如此高的股价还能买吗 https://www.meijiu.com/cs/535587.html
10.贵州茅台(600519)行情中心新华08股票行情实时行情贵州茅台(600519)的实时行情。包括:分时行情、K线图、技术指标、指南针特色指标、宏观研究、行业分析、投资策略、晨会纪要、个股新闻资讯、机构视点、投资评级、盈利分析等。http://cfc08.compass.cn/stock/realstock.php?code=sh600519
11.贵州茅台(600519)股票价格行情提供贵州茅台(600519)股票的行情走势、五档盘口、逐笔交易等实时行情数据,及贵州茅台(600519)的新闻资讯、公司公告、研究报告、行业研报、F10资料、行业资讯、资金流分析、阶段涨幅、所属板块、财务指标、机构观点、行业排名、估值水平、股吧互动等与贵州茅台(600519)有关http://quote.eastmoney.com/sh600519.html
12.贵州茅台股票投资分析报告贵州茅台股票投资分析报告 起止日期 6.15-6.19 提交报告日期 2015 年 6 月 19 日 学期 20 14 2015 第 2 学期报 告退发(订正、重做) 投资实务 课程设计报告 题目投资实务课程设计 专业市场营销 班级B120404 姓名姚艽佼 学号B12040426 指导教师梁美娟 成绩 评语 1、课程设计目的 通过课程设计,掌握股票的交易程序https://www.mayiwenku.com/News/d-54329475.html
13.贵州茅台股票k线分析报告(贵州茅台股票k线分析报告2021)贵州茅台股票k线分析报告(贵州茅台股票k线分析报告2021) 自2003年到2019年,贵州茅台股价一直在上下波动,在2021年春节前的时候上涨到了4块钱左右,一直持续到2020年12月31日的时候,贵州茅台股价突破了2000元大关,从高点调整到了2000元左右,然后一路上涨到现在,截止目前,贵州茅台股价在2021年的年中也上涨了不少。从202https://www.wpmee.com/27117.html
14.贵州茅台(600519)股票行情贵州茅台(600519)股票自动交易云财经股票行情中心情报分析为您提供贵州茅台(600519)最新消息,股票行情,公告,数据,汇聚贵州茅台(600519)公司机构研报、superk行情分析图及分时模式,助您实时掌握贵州茅台(600519)第一手消息。http://www.yuncaijing.com/quote/sh600519
15.(2024年4月3日)今日贵州茅台股票最新行情走势查询个股大盘分析 个股资金流向 大盘资金流向 中润资源 上证指数 股票 创业板 贵州茅台 2024-4-3 16:23:11 1085阅读 4月2日白酒龙头股排名前十:古井贡酒、迎驾贡酒跌超1% 4月2日,白酒板块出现下挫,截至目前下跌0.68%。据数据显示,板块内的山西汾酒上涨0.97%,建发股份上涨0.1%,泸州老窖上涨0.03%;五粮液、古井贡酒、https://stock.cngold.org/c/2024-04-03/c9236497.html
16.贵州茅台(600519)个股概要股票价格最新资讯行情走势!他认为,对于新一代而言,收藏已从$贵州茅台(600519)$转向潮玩,送礼时潮玩甚至比茅台更有面子。在国内外拥有9个德扑冠军的他,如今也看好澳门博彩股。当前博彩股估值较低,在未来经济宽松环境中有望获得估值大幅修复 。来吧虎友们,让我们一起来听听他的投资心得大分享吧 https://www.laohu8.com/m/hq/s/600519/tweets
17.贵州茅台:1519.002.99%贵州茅台(600519)的实时行情,及时准确的提供贵州茅台(600519)的flash分时走势、K线图、均价线系统、MACD、KDJ、交易量等全面技术分析,帮你做出及时判断,同时提供贵州茅台(600519)的股票交易提示,公司概况,最新资讯,分析师评论,股吧等重要信息https://q.stock.sohu.com/cn/600519/index.shtml