简介
由于经常记不住stream的一些API每次要复制来复制去并且又长又臭,想要更加语意化的api,于是想到了以前写大数据Spark pandnas 等DataFrame模型时的API, 然后发现其实也存在java的JVM层的DataFrame模型比如 tablesaw,joinery
但是他们得硬编码去指定字段名,这对于有代码洁癖的人实在难以忍受,而且我只是简单统计下数据,我想在一些场景下能不能使用匿名函数去指定的字段处理去处理,于是便有了这个
一个jvm层级的仿DataFrame工具,语意化和简化java8的stream流式处理工具。
快速开始
引入依赖
<dependency>
<groupId>io.github.burukeyou</groupId>
<artifactId>jdframe</artifactId>
<version>0.0.2</version>
</dependency>
代码地址:
https://github.com/burukeYou/JDFrame
Maven依赖地址
https://central.sonatype.com/artifact/io.github.burukeyou/jdframe
提供了两种Frame,SDFrame和JDFrame 在API层面一模一样, 区别是JDFrame的所有操作实时生效, 无需要重新read生成,而SDFrame与stream流一致,只有执行终止操作才会生效,并且需要重新read生成流, 而且在同一个流之间的操作是互相影响的。
如果只是需要流式操作一条流执行完就用SDFrame, 如果需要“中间站点”数据,然后从“中间站点数据“开始计算就用JDFrame, 这个在含义层面与DataFrame模型类似。
这个在语法层面能实现的矩阵还是比较有限的因为行列是通过枚举的几个FI去描述,但是不同的逻辑导致的矩阵变换的变化可能是非常大的,除非JDK能语法层面支持到吧或者放弃强类型全部硬编码才能实现各种矩阵的表示和变换。期待JDK一个JVM层面的“pandans” 出现。
还有一些api没有列举出来使用的比较少
主要是对逻辑的封装和语意化,如果还有哪些逻辑和api可以扩展可以在评论区留下你的想法。
来源:juejin.cn/post/7356652717392740404