ApacheSpark2.
4正式发布,重要功能详细介绍美国时间2018年11月08日正式发布了.
一如既往,为了继续实现Spark更快,更轻松,更智能的目标,Spark2.
4带来了许多新功能,如下:添加一种支持屏障模式(barriermode)的调度器,以便与基于MPI的程序更好地集成,例如,分布式深度学习框架;引入了许多内置的高阶函数,以便更容易处理复杂的数据类型(比如数组和map);开始支持Scala2.
12;允许我们对notebooks中的DataFrame进行热切求值(eagerevaluation),以便于调试和排除故障;引入新的内置Avro数据源.
如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop除了这些新功能外,该版本还重点关注可用性,稳定性和优化,解决了超过1000个tickets.
Spark贡献者的其他显着特征包括:消除2GB块大小的限制[SPARK-24296,SPARK-24307]提升PandasUDF[SPARK-22274,SPARK-22239,SPARK-24624]图片模式数据源(Imageschemadatasource)[SPARK-22666]SparkSQL加强[SPARK-23803,SPARK-4502,SPARK-24035,SPARK-24596,SPARK-19355]内置文件源改进[SPARK-23456,SPARK-24576,SPARK-25419,SPARK-23972,SPARK-19018,SPARK-24244]1/5Kubernetes整合加强[SPARK-23984,SPARK-23146]在这篇文章中,我们简要总结了一些更高级别的功能和改进.
有关Spark所有组件和JIRA已解决的主要功能的完整列表,请阅读ApacheSpark2.
4.
0releasenotes.
BarrierExecutionModeBarrierExecutionMode是ProjectHydrogen的一部分,这是ApacheSpark的一项计划,旨在将最先进的大数据和AI技术结合在一起.
它可以将来自AI框架的分布式训练作业正确地嵌入到Spark作业中.
我们通常会像All-Reduce这样来探讨复杂通信模式(complexcommunicationpatterns),因此所有的任务都需要同时运行.
这不符合Spark当前使用的MapReduce模式.
使用这种新的执行模式,Spark同时启动所有训练任务(例如,MPI任务),并在任务失败时重新启动所有任务.
Spark还为屏障(barriertasks)任务引入了一种新的容错机制.
当任何障碍任务在中间失败时,Spark将中止所有任务并重新启动当前stage.
内置高阶函数在Spark2.
4之前,为了直接操作复杂类型(例如数组类型),有两种典型的解决方案:将嵌套结构展开为多行,并应用某些函数,然后再次创建结构;编写用户自定义函数(UDF).
新的内置函数可以直接操作复杂类型,高阶函数可以使用匿名lambda函数直接操作复杂值,类似于UDF,但具有更好的性能.
比如以下两个高阶函数:SELECTarray_distinct(array(1,2,3,null,3));["1","2","3",null]SELECTarray_intersect(array(1,2,3),array(1,3,5));["1","3"]关于内置函数和高阶函数的进一步说明可以参见《ApacheSpark2.
4中解决复杂数据类型的内置函数和高阶函数介绍》和《ApacheSpark2.
4新增内置函数和高阶函数使用介绍》内置Avro数据源ApacheAvro是一种流行的数据序列化格式.
它广泛用于ApacheSpark和ApacheHadoop生态系统,尤其适用于基于Kafka的数据管道.
从ApacheSpark2.
4版本开始,Spark为读取和写入Avro数据提供内置支持.
新的内置spark-avro模块最初来自Databricks2/5的开源项目AvroDataSourceforApacheSpark.
除此之外,它还提供以下功能:新函数from_avro()和to_avro()用于在DataFrame中读取和写入Avro数据,而不仅仅是文件.
支持Avro逻辑类型(logicaltypes),包括Decimal,Timestamp和Date类型.
SparkSQL和Avro的数据类型之间的转换可以参见下面:SparkSQLtypeAvrotypeAvrologicaltypeByteTypeintShortTypeintBinaryTypebytesDateTypeintdateTimestampTypelongtimestamp-microsDecimalTypefixeddecimal2倍读取吞吐量提高和10%写入吞吐量提升.
支持Scala2.
12从Spark2.
4开始,Spark支持Scala2.
12,并分别与Scala2.
11和2.
12进行交叉构建,这两个版本都可以在Maven存储库和下载页面中使用.
现在,用户可以使用Scala2.
12来编写Spark应用程序.
Scala2.
12为Java8带来了更好的互操作性,Java8提供了改进的lambda函数序列化.
它还包括用户期望的新功能和错误修复.
PandasUDF提升PandasUDF是从Spark2.
3开始引入的.
在此版本中,社区收集了用户的反馈,并不断改进PandasUDF.
除了错误修复之外,Spark2.
4中还有2个新功能:SPARK-22239使用PandasUDF来用户自定义窗口函数.
SPARK-22274使用PandasUDF来用户自定义聚合函数.
我们相信这些新功能将进一步改善PandasUDF的使用,我们将在下一版本中不断改进PandasUDF.
ImageDataSource3/5社区从图像/视频/音频处理行业看到了更多案例.
为这些提供Spark内置数据源简化了用户将数据导入ML训练的工作.
在Spark2.
3版本中,图像数据源是通过ImageSchema.
readImages实现的.
Spark2.
4发行版中的SPARK-22666引入了一个新的Spark数据源,它可以作为DataFrame从目录中递归加载图像文件.
现在加载图像非常简单:df=spark.
read.
format("image").
load(".
.
.
")Kubernetes整合增强Spark2.
4包含许多Kubernetes集成的增强功能.
主要包括这三点:首先,此版本支持在Kubernetes上运行容器化PySpark和SparkR应用程序.
Spark为Dockerfiles提供了Python和R绑定,供用户构建基本映像或自定义它以构建自定义映像.
其次,提供了客户端模式.
用户可以在Kubernetes集群中运行的pod里面运行交互式工具(例如,shell或notebooks).
最后,支持挂载以下类型的Kubernetesvolumes:emptyDir,hostPath和persistentVolumeClaim.
灵活的StreamingSink许多外部存储系统已经有批量连接器(batchconnectors),但并非所有外部存储系统都有流式接收器(streamingsinks).
在此版本中,即使存储系统不支持将流式传输作为接收器(streamingasasink).
streamingDF.
writeStream.
foreachBatch(.
.
.
)允许我们在每个微批次(microbatch)的输出中使用batchdatawriters.
例如,过往记忆告诉你可以使用foreachBatch中现有的ApacheCassandra连接器直接将流式查询的输出写入到Cassandra.
具体如下:/***User:过往记忆*Date:2018-11-10*Time:10:24*bolg:https://www.
iteblog.
com*本文地址:https://www.
iteblog.
com/archives/2448*过往记忆博客,专注于Hadoop、Spark、HBase等大数据技术.
*过往记忆博客微信公共帐号:iteblog_hadoop*/streamingDF.
writeStream.
foreachBatch{(iteblogBatchDF:DataFrame,batchId:Long)=>4/5iteblogBatchDF.
write//UseCassandrabatchdatasourcetowritestreamingout.
cassandraFormat(tableName,keyspace).
option("cluster","iteblog_hadoop").
mode("append").
save()}同样,你也可以使用它将每个微批输出(micro-batchoutput)应用于streamingDataFrames中,许多DataFrame/Dataset操作在streamingDataFrames是不支持的,具体使用如下:streamingDF.
writeStream.
foreachBatch{(iteblogBatchDF:DataFrame,batchId:Long)=>iteblogBatchDF.
cache()iteblogBatchDF.
write.
format(.
.
.
).
save(location1iteblogBatchDF.
write.
format(.
.
.
).
save(location2iteblogBatchDF.
uncache()}本博客文章除特别声明,全部都是原创!
转载本文请加上:转载自过往记忆(https://www.
iteblog.
com/)本文链接:【】()PoweredbyTCPDF(www.
tcpdf.
org)5/5
VirMach,成立于2014年的美国IDC商家,知名的低价便宜VPS销售商,支持支付宝、微信、PayPal等方式付款购买,主打美国、欧洲暑假中心产品,拥有包括洛杉矶、西雅图、圣何塞、凤凰城在内的11个数据中心可以选择,可以自由搭配1Gbps、2Gbps、10Gbps带宽端口,有Voxility DDoS高防IP可以选择(500Gbps以上的防御能力),并且支持在控制面板付费切换机房和更换IP(带...
昨天,遇到一个网友客户告知他的网站无法访问需要帮他检查到底是什么问题。这个同学的网站是我帮他搭建的,于是我先PING看到他的网站是不通的,开始以为是服务器是不是出现故障导致无法打开的。检查到他的服务器是有放在SugarHosts糖果主机商中,于是我登录他的糖果主机后台看到服务器是正常运行的。但是,我看到面板中的IP地址居然是和他网站解析的IP地址不同。看来官方是有更换域名。于是我就问 客服到底是什...
弘速云怎么样?弘速云是创建于2021年的品牌,运营该品牌的公司HOSU LIMITED(中文名称弘速科技有限公司)公司成立于2021年国内公司注册于2019年。HOSU LIMITED主要从事出售香港vps、美国VPS、香港独立服务器、香港站群服务器等,目前在售VPS线路有CN2+BGP、CN2 GIA,该公司旗下产品均采用KVM虚拟化架构。可联系商家代安装iso系统,目前推出全场vps新开7折,...
apache启动失败为你推荐
注册域名注册域名要提交什么资料?美国vps服务器美国VPS和美国服务器速度快吗虚拟主机代理请问虚拟主机的代理和虚拟主机分销有什么区别?分销的主机是不是可以把主机分给多个用户使用?我用的ResellerClub代理!!vps试用求个免费现成的vps(可永久可试用)台湾vps台湾服务器 哪里稳定速度快?网站空间商网站备案为什么是空间商备案?求解韩国虚拟主机香港和韩国的虚拟主机哪个比较好?100m虚拟主机一般100-200M虚拟主机一天最多支持多少人访问啊?万网虚拟主机如何购买万网的虚拟主机?虚拟主机评测麻烦看一下这些虚拟主机商那个好?
厦门域名注册 万网域名代理 免费域名解析 site5 php探针 windows2003iso 个人空间申请 hostker 合租空间 双线主机 hinet 共享主机 世界测速 申请网页 厦门电信 创建邮箱 沈阳主机托管 smtp服务器地址 个人免费邮箱 阿里云邮箱登陆 更多