gitweixin
  • 首页
  • 小程序代码
    • 资讯读书
    • 工具类
    • O2O
    • 地图定位
    • 社交
    • 行业软件
    • 电商类
    • 互联网类
    • 企业类
    • UI控件
  • 大数据开发
    • Hadoop
    • Spark
    • Hbase
    • Elasticsearch
    • Kafka
    • Flink
    • 数据仓库
    • 数据挖掘
    • flume
    • Kafka
    • Hive
    • shardingsphere
    • solr
  • 开发博客
    • Android
    • php
    • python
    • 运维
    • 技术架构
    • 数据库
  • 程序员网赚
  • bug清单
  • 量化投资
  • 在线查询工具
    • 去行号
    • 在线时间戳转换工具
    • 免费图片批量修改尺寸在线工具
    • SVG转JPG在线工具

Spark分析个股的活跃性

精品微信小程序开发门户,代码全部亲测可用

  • 首页   /  
  • 作者: east
  • ( 页面79 )
Spark 4月 19,2019

Spark分析个股的活跃性

在前文scala获取免费的股票日k线数据 ,本文做进一步扩展,统计一下股票振幅,统计最近20天振幅大于4个点有多少天。对于炒股喜欢短线的人来说,振幅大的股票,越好做T+0操作。


import java.util
import java.util.Collections

import org.apache.spark.SparkContext
import org.apache.spark.sql.{Encoder, Encoders, SparkSession}
import stock.SinaStock

import scala.io.Source
object KLineAnalyse {
def main(args: Array[String]): Unit = {
println("查询日k线股票 http://data.gtimg.cn/flashdata/hushen/daily/19/sh603000.js")
val sinaStockStream = Source.fromURL("http://data.gtimg.cn/flashdata/hushen/daily/19/sh603000.js","utf-8")
val sinaLines=sinaStockStream.getLines
val spark = SparkSession.builder().appName("kline").master("local[*]").getOrCreate(); //为读取的数据创建schema
//val sc = new SparkContext(SparkUtils.getSparkConf("SequenceFileUsage"))
val list = new util.ArrayList[KLineModel]()
for(line <- sinaLines) { /** 将每行数据解析成SinaStock对象,并答应对应的股票信息 **/
if(line.length > 20) {
// println(new KLineModel(line).toString)
list.add(new KLineModel(line));
}
}
Collections.reverse(list);
import scala.collection.JavaConverters
import scala.collection.Seq
import spark.implicits._
// List 转 Seq
val tmpSeq = JavaConverters.asScalaIteratorConverter(list.iterator).asScala.toSeq
sinaStockStream.close()
val mySparkRdd = spark.sparkContext.parallelize(tmpSeq);
val top2Rdd = mySparkRdd.take(20)
val rateRdd = top2Rdd.map(a => (a.dateStr, (a.highPrice - a.lowPrice)/a.openPrice * 100))
//过滤每天振幅大于几个点的
val resultRdd = rateRdd.filter(_._2 >= 4)
println(resultRdd.toBuffer)
val wordPairs = resultRdd.map(word => (word, 1))
val wordCounts = wordPairs.length / 20.0f;
println("wordCounts: " + wordCounts)

}

}
作者 east
bug清单 4月 19,2019

spark错误:Unable to find encoder for type stored in a Dataset

运行下面代码,出现了错误

import spark.implicits._
val tmpSeq = JavaConverters.asScalaIteratorConverter(list.iterator).asScala.toSeq
val ds = spark.createDataset(tmpSeq)

Error:(32, 33) Unable to find encoder for type stored in a Dataset. Primitive types (Int, String, etc) and Product types (case classes) are supported by importing spark.implicits._ Support for serializing other types will be added in future releases.

觉得因为Dataset是强类型,没有指定好类型,于是修改如下面这样,果然错误消失了:

 import spark.implicits._
// List 转 Seq
val tmpSeq = JavaConverters.asScalaIteratorConverter(list.iterator).asScala.toSeq
sinaStockStream.close()
// spark.sparkContext.parallelize(tmpSeq);
val personEncoder: Encoder[KLineModel] = Encoders.bean(classOf[KLineModel])
val ds = spark.createDataset(tmpSeq)(personEncoder)
作者 east
Spark 4月 18,2019

scala获取免费的股票日k线数据

接口的的抓取使用了Scala标准库的Source


class KLineModel {
var dateStr ="";
var openPrice = 0f;
var closePrice = 0f;
var highPrice = 0f;
var lowPrice = 0f;

private var stockInfo :String =""

def this(stockInfo:String)
{
this()
this.stockInfo=stockInfo /** 根据腾讯的数据接口解析数据 **/
val stockDetail=stockInfo.split(Array(' ',' ',' ',' ',' '))
if (stockDetail.length>4){
this.dateStr=stockDetail(0)
this.openPrice=stockDetail(1).toFloat
this.closePrice =stockDetail(2).toFloat
this.highPrice=stockDetail(3).toFloat
this.lowPrice =stockDetail(4).toFloat

}
}


override def toString = s"KLineModel($dateStr, $openPrice, $closePrice, $highPrice, $lowPrice)"
import scala.io.Source
object KLineAnalyse {
def main(args: Array[String]): Unit = {
println("查询日k线股票 http://data.gtimg.cn/flashdata/hushen/daily/19/sh603000.js")
val sinaStockStream = Source.fromURL("http://data.gtimg.cn/flashdata/hushen/daily/19/sh603000.js","utf-8")
val sinaLines=sinaStockStream.getLines
for(line <- sinaLines) { /** 将每行数据解析成SinaStock对象,并答应对应的股票信息 **/
if(line.length > 20) {
println(new KLineModel(line).toString)
}
}
sinaStockStream.close()
}

}
作者 east
Spark 4月 18,2019

spark中删除文件夹或文件

这个方法能删除HDFS或本地的文件夹或文件,

val spark = SparkSession.builder().appName("USQL").master("local[*]").getOrCreate(); 
deleteOutPutPath(spark.sparkContext,"E:\\newcode\\MyFirstProject\\data\\output\\")

/**
* 删除文件夹或文件
*
@param sc
* @param outputPath
*/
def deleteOutPutPath(sc: SparkContext,outputPath: String):Unit={
val path = new Path(outputPath)
val hadoopConf = sc.hadoopConfiguration
val hdfs = org.apache.hadoop.fs.FileSystem.get(hadoopConf)
if(hdfs.exists(path)){
hdfs.delete(path,true)
}
}

如果是删除文件夹的,前面要加下面的话


spark.sparkContext.hadoopConfiguration.setBoolean("mapreduce.input.fileinputformat.input.dir.recursive", true)
作者 east
bug清单 4月 16,2019

Android provider authorities冲突导致安装失败

复制一个已有的工程,包名等都改了,安装在手机上提示有包名冲突,安装不成功。于是检查AndroidManifext.xml,发现

<provider
android:name="cn.jpush.android.service.DataProvider"
android:authorities="com.balala.DataProvider"
android:exported="false"
android:process=":pushcore"
/>

发现android:authorities 的值没修改,因为
provider的authorities相当于一个系统级的全局变量它的值必须唯一

作者 east
bug清单 4月 15,2019

在Fragment调用UI控件出现Activity has been destroyed

在Fragment的代码中,

new Handler().postDelayed(new Runnable(){
CustomDialogFactory fragmentFactory = new CustomDialogFactory(getChildFragmentManager());
。。。
}, 3000);

出现错误

ava.lang.IllegalStateException

Activity has been destroyed

分析到原因,可能是由于定时原因,Activity已经结束,还执行到Fragment定时任务。可以在fragment判断activity是否结束。

new Handler().postDelayed(new Runnable(){
if(getActivity()==null){
return;
}
if(getActivity().isFinishing()){
return;
}
CustomDialogFactory fragmentFactory = new   CustomDialogFactory(getChildFragmentManager());
。。。
}, 3000);
作者 east
Spark 4月 15,2019

spark实战项目列表

Spark数据挖掘实例1:基于 Audioscrobbler 数据集音乐推荐

spark实例2:统计亚马逊联盟的导出的费用明细的csv

spark实例3:倒排索引

spark实例5:找出词频最高的前K个词

作者 east
bug清单 4月 14,2019

Android java.lang.StringIndexOutOfBoundsException String index out of range: -2

出现该异常表示字符串下标越界,建议检查访问的下标是否超过字符串长度。  解决方式:在引用字符串索引前判断下标是否在长度范围内。还有一咱可能是发生在多线程代码中,这时要注意加相关的锁。
作者 east
bug清单 4月 14,2019

Android requestCode错乱的问题

在fragment中使用startActivityForResult之后,发现在另一个相应Activity的onActivityResult中的requestCode的值不一致。
只需要将startActivityForResult改为getActivity().startActivityForResult 即可

作者 east
互联网类
4月 14,2019

英雄联盟(LOL)战绩查询小程序原码

这是一款 模仿了掌上英雄联盟APP 的小程序,功能包括显示所有英雄资料页面,并可以有模糊查询功能,Rank排行榜查询,视频预览页面,有后台和客户端,代码注释完善。

作者 east
Android 3月 14,2019

js库clipboard.js 复制粘贴完美兼容 ios和android

clipboard.js有一些注意事项,特别是在android上:

1, 点击框得是 button

2,id必须是英文开头

3, 复制的内容要放在input输入框里,否则会导致安卓手机上无法复制,input设置readonly

示例:

<!--js copy事件-->
<script type="text/javascript" src="/static/js/clipboard.min.js" ></script>

<li>
                    <p>卡号-01:<span><input id="l1234567890" type="text" value="1234567890" readonly></span><button class="btnClipboard" data-clipboard-action="copy" data-clipboard-target="#l1234567890">复制</button></p>
                    <p>密码-01:
                        <span class="pass_mi">******</span>
                        <span class="pass_show">显示</span>
                        <span class="pass_num"><input id="l098765" type="text" value="098765" readonly></span>
                        <span class="pass_copy">
                            <button class="btnClipboard" data-clipboard-action="copy" data-clipboard-target="#l098765">复制</button>
                        </span>
                    </p>
                </li>

 var clipboard = new ClipboardJS('.btnClipboard');
    clipboard.on('success', function (e) {
        layer.open({
            content: '复制成功'
            ,skin: 'msg'
            ,time: 2 //2秒后自动关闭
        });
    });
    clipboard.on('error', function (e) {
        layer.open({
            content: '请手动复制'
            ,skin: 'msg'
            ,time: 2 //2秒后自动关闭
        });
    });




作者 east
Android 2月 22,2019

测试admob是否能正常显示广告

尤其是在中国,由于广告投放等的问题,admob广告不一定正常显示,这时可以 请求测试广告 。
AdRequest adRequest = new AdRequest(); 
adRequest.addTestDevice(AdRequest.TEST_EMULATOR);               // 模拟器 
adRequest.addTestDevice(“TEST_DEVICE_ID”);                      // 测试 Android 设备 
您可以在对设备进行调试时请求广告,然后在 logcat 输出中找到设备 ID。  也可以用下面的代码来获取设备ID。

String android_id = Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID);
String deviceId = DeviceUtil.md5(android_id).toUpperCase();

public static final String md5(final String s) {
try {
// Create MD5 Hash
MessageDigest digest = java.security.MessageDigest
.getInstance("MD5");
digest.update(s.getBytes());
byte messageDigest[] = digest.digest();

// Create Hex String
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < messageDigest.length; i++) {
String h = Integer.toHexString(0xFF & messageDigest[i]);
while (h.length() < 2)
h = "0" + h;
hexString.append(h);
}
return hexString.toString();

} catch (NoSuchAlgorithmException e) {
// Logger.logStackTrace(TAG,e);
e.printStackTrace();
}
return "";
}


作者 east

上一 1 … 78 79 80 … 92 下一个

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。回复”chatgpt”获取免注册可用chatgpt。回复“大数据”获取多本大数据电子书

标签

AIGC AI创作 bert chatgpt github GPT-3 gpt3 GTP-3 hive mysql O2O tensorflow UI控件 不含后台 交流 共享经济 出行 图像 地图定位 外卖 多媒体 娱乐 小程序 布局 带后台完整项目 开源项目 搜索 支付 效率 教育 日历 机器学习 深度学习 物流 用户系统 电商 画图 画布(canvas) 社交 签到 联网 读书 资讯 阅读 预订

官方QQ群

小程序开发群:74052405

大数据开发群: 952493060

近期文章

  • MQTT完全解析和实践
  • 解决运行Selenium报错:self.driver = webdriver.Chrome(service=service) TypeError: __init__() got an unexpected keyword argument ‘service’
  • python 3.6使用mysql-connector-python报错:SyntaxError: future feature annotations is not defined
  • 详解Python当中的pip常用命令
  • AUTOSAR如何在多个供应商交付的配置中避免ARXML不兼容?
  • C++thread pool(线程池)设计应关注哪些扩展性问题?
  • 各类MCAL(Microcontroller Abstraction Layer)如何与AUTOSAR工具链解耦?
  • 如何设计AUTOSAR中的“域控制器”以支持未来扩展?
  • C++ 中避免悬挂引用的企业策略有哪些?
  • 嵌入式电机:如何在低速和高负载状态下保持FOC(Field-Oriented Control)算法的电流控制稳定?

文章归档

  • 2025年7月
  • 2025年6月
  • 2025年5月
  • 2025年4月
  • 2025年3月
  • 2025年2月
  • 2025年1月
  • 2024年12月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年1月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年7月
  • 2018年6月

分类目录

  • Android (73)
  • bug清单 (79)
  • C++ (34)
  • Fuchsia (15)
  • php (4)
  • python (45)
  • sklearn (1)
  • 云计算 (20)
  • 人工智能 (61)
    • chatgpt (21)
      • 提示词 (6)
    • Keras (1)
    • Tensorflow (3)
    • 大模型 (1)
    • 智能体 (4)
    • 深度学习 (14)
  • 储能 (44)
  • 前端 (4)
  • 大数据开发 (490)
    • CDH (6)
    • datax (4)
    • doris (31)
    • Elasticsearch (15)
    • Flink (78)
    • flume (7)
    • Hadoop (19)
    • Hbase (23)
    • Hive (41)
    • Impala (2)
    • Java (71)
    • Kafka (10)
    • neo4j (5)
    • shardingsphere (6)
    • solr (5)
    • Spark (99)
    • spring (11)
    • 数据仓库 (9)
    • 数据挖掘 (7)
    • 海豚调度器 (10)
    • 运维 (34)
      • Docker (3)
  • 小游戏代码 (1)
  • 小程序代码 (139)
    • O2O (16)
    • UI控件 (5)
    • 互联网类 (23)
    • 企业类 (6)
    • 地图定位 (9)
    • 多媒体 (6)
    • 工具类 (25)
    • 电商类 (22)
    • 社交 (7)
    • 行业软件 (7)
    • 资讯读书 (11)
  • 嵌入式 (71)
    • autosar (63)
    • RTOS (1)
    • 总线 (1)
  • 开发博客 (16)
    • Harmony (9)
  • 技术架构 (6)
  • 数据库 (32)
    • mongodb (1)
    • mysql (13)
    • pgsql (2)
    • redis (1)
    • tdengine (4)
  • 未分类 (6)
  • 程序员网赚 (20)
    • 广告联盟 (3)
    • 私域流量 (5)
    • 自媒体 (5)
  • 量化投资 (4)
  • 面试 (14)

功能

  • 登录
  • 文章RSS
  • 评论RSS
  • WordPress.org

All Rights Reserved by Gitweixin.本站收集网友上传代码, 如有侵犯版权,请发邮件联系yiyuyos@gmail.com删除.