spark/pyspark的增强python数据帧

smartframes的Python项目详细描述


spark/pyspark的增强python数据帧

动机

spark数据框架为具有模式的数据集提供了一个很好的接口。在python中,将代码中的数据放入dataframe意味着创建一个row()对象,该对象具有字段名和相应的值。假设您已经有了一个每个字段都有数据类型的模式,那么很容易获得一个表示行的对象并自动创建row()对象。

SmartFrames允许您通过创建表示字段和数据类型的架构来定义类。然后可以创建一个对象,并像其他任何python类一样设置值。当您准备好将其存储在数据帧中时,只需调用createRow()方法。

createRow()方法将任何值强制为正确的数据类型,例如,如果字段定义为integerType,并且类中设置的值是字符串,则它将在创建row()之前尝试将字符串转换为整数。

这是在使用长数据类型创建row()时编写的,发现spark在向jvm传递值时没有将整数转换为长整数。我需要一种一致的方式来为我的所有数据帧创建row()。

安装

pip install smartframes

示例

只需创建一个扩展自SmartFrame的类,并将架构定义为结构字段的排序列表。如果row()对象是用不同顺序的字段创建的,那么将模式排序为spark出错是很重要的。奇怪,但却是真的。

SkipSelectedFields是创建select()语句时通常不会选择的字段名列表。

classSimpleTable(SmartFrames):schema=StructType(sorted([StructField("pk_id",IntegerType()),StructField("first_name",StringType()),],key=lambdax:x.name))skipSelectedFields=[]...s1=SimpleTable()s1.pk_id=1s1.first_name='Don's2=SimpleTable()s2.pk_id=2s2.first_name='Dan'df=self.sqlCtx.createDataFrame(self.sc.parallelize([s1.createRow(),s2.createRow()]),s1.schema)

释放量

VersionDateNotes
1.1.010/6/2015Performance improvements
1.0.110/3/2015First release of smartframes

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在wix中为TARGETDIR和SourceDir提供路径?   java在custom starter中访问spring应用程序名称   没有构建带有ActionBarSherlock的java Android项目   java按钮边框不显示   JavaSpring:从表单数据获取文件输入流   javascript通知侦听器服务   java在Junit测试时遇到异常   java从文件中读取特定值   JavaFX:在很短的时间内隐藏窗格   如何在Docker中使用用户定义的引用类来容器化Java应用程序?   java如何更改项目的编译SDKversion?   是否有任何java/spring方法可以使用HttpServletRequest存储当前登录用户的会话信息?   Java中的双大于号(>>)?   Java阵列2x2及其工作原理   java Spring引导ddl自动生成器   java如何利用大量数据传输优化服务器客户端应用程序?   java在使用Windows的FLAG_全屏时ICS和Jelly Bean之间的不同行为   java如何获取当前在回收器视图的线性布局中不可见的视图