利用HTP工具包开发报表
利用这种方式的优点是不需要跑请求就可以打印报表
工具包中常用程序说明
htp.print
语法 htp.print (cbuf | dbuf | nbuf);
作用 generates a line in an HTML document.
参数 cbuf in varchar2 or
dbuf in dateor
nbuf in number
Generates Generates a line in an HTML document based on the value passed to it.
htp.p
Alias for htp.print
Structure Tags 结构标记
The following tags are used to identify the major parts of an HTML
document.
Note: Although this section shows hypertext procedures (HTP), all of
them are also available as hypertext functions (HTF).
htp.htmlOpen
语法 htp.htmlOpen;
作用 Prints a tag that indicates the beginning of an HTML document
ERP REPORT
参数 none
Generates <HTML>
htp.htmlClose
语法 htp.htmlClose;
作用 Prints a tag that indicates the end of an HTML document
参数 none
Generates </HTML>
htp.headOpen
语法 htp.headOpen;
作用 Prints a tag that indicates the beginning of the HTML document head
参数 none
Generates <HEAD>
htp.headClose
语法 htp.headClose;
作用 Prints a tag that indicates the end of the HTML document head
参数 none
Generates </HEAD>
htp.bodyOpen
语法 htp.bodyOpen (cbackground, cattributes);
作用 Prints the tag that identifies the beginning of the body of an HTML document, and
allows you to specify an image as the background of the document
参数 cbackground in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL
Generates <BODY background="cbackground" cattributes>
Note: If cbackground and cattributes are NULL, this tag generates <BODY>.
ERP REPORT
Example htp.bodyOpen ('/img/background.gif'); This line produces:<BODY
background="background.gif">
htp.bodyClose
语法 htp.bodyClose;
作用 Defines the end of the HTML document body
参数 none
Generates </BODY>
Generates <TITLE>ctitle</TITLE><Hnsize
ALIGN="calign" NOWRAP CLEAR="cclear"
cattributes>ctitle</Hnsize>
Note that htp.htitle produces non-standard
HTML. However, most Web Browsers accept
it. To produce standard HTML, the <TITLE>
tag must be in the HEAD section of the page,
and the level heading tag (<H
n>) must be in the BODY section. For example:
htp.headOpen; htp.title(...);
htp.headClose; htp.bodyOpen; htp.header
(1,...)); ...
Table Tags 表格标记
The Table tags allow the user to insert tables and manipulate the size
and columns of the table in a document.
Note: All the hypertext procedures (HTP) shown in this section are also
available as hypertext functions (HTF).
htp.tableOpen
语法 htp.tableOpen (cborder, calign, cnowrap, cclear, cattributes);
作用 Prints an HTML tag that begins an HTML table.
参数 cborder in varchar2 DEFAULT NULL
calign in varchar2 DEFAULT NULL
cnowrap in varchar2 DEFAULT NULL
cclear in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL;
Generates <TABLE BORDER NOWRAP ALIGN="calign" CLEAR="cclear" cattributes>
Note: The BORDER attribute is only determined by whether cborder is null
or not null.
ERP REPORT
htp.tableClose
语法 htp.tableClose;
作用 Prints an HTML tag that ends an HTML table.
参数 none
Generates </TABLE>
htp.tableRowOpen
语法 htp.tableRowOpen (calign, cvalign,cdp, cnowrap, cattributes);
作用 Prints an HTML tag that inserts a row tag into a table.
参数 calign in varchar2 DEFAULT NULL
cvalign in varchar2 DEFAULT NULL
cdp in varchar2 DEFAULT NULL
cnowrap in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL
Generates <TR ALIGN="calign" VALIGN="cvalign" DP="cdp" NOWRAP catttributes>
htp.tableRowClose
语法 htp.tableRowClose;
作用 Prints an HTML tag that ends a row in a table.
参数 none
Generates </TR>
htp.tableData
语法 htp.tableData (cvalue, calign, cdp, cnowrap, cattributes);
作用 Prints an HTML tag that inserts data into the rows and columns of a selected table.
参数 cvalue in varchar2 DEFAULT NULL
calign in varchar2 DEFAULT NULL
cdp in varchar2 DEFAULT NULL
cnowrap in varchar2 DEFAULT NULL
cattributes in varchar2 DEFAULT NULL
Generates <TD ALIGN="calign" DP="cdp" ROWSPAN="crowspan" COLSPAN="ccolspan" NOWRAP
ERP REPORT
cattributes>cvalue</TD>
包里面别的程序和用法可以查
http://www.lnu.edu.cn/book/oracleweb/ows402.htm
一个例子
<span style="font-size:18px;">PROCEDURE CUXTS001(
p_header_id IN VARCHAR2 default null,
p_org_id IN VARCHAR2 default null
)
AS
---declare the data source
------Report page parameters
v_row_num NUMBER;
v_first_flag NUMBER := 0; -----标志
x_count NUMBER; -------总行数
v_page_rows NUMBER := 1; ------定义每张报表的line数量
v_page_count NUMBER;
v_page_width NUMBER := 800;
v_font_size NUMBER := 2;
v_page_num NUMBER := 1;
v_line_count NUMBER := 0;
v_jes NUMBER := 0;
v_dis_no NUMBER := 0;
max_line NUMBER := 7;
----------------------------------------------------
t_qty NUMBER := 0;
t_amount NUMBER := 0;
x_org_name VARCHAR2 (100);
x_sum_count_no NUMBER := 0;
----采购题头
CURSOR c_header
IS
SELECT pha.segment1 po_num,
pha.po_header_id,
pha.type_lookup_code,
pha.agent_id,
pha.comments,
ppf.full_name full_name,
pha.creation_date,
ERP REPORT
pv.vendor_id,
SUBSTR (pv.vendor_name, 1, 38) vendor_name
FROM po_headers_all pha,
po_vendors pv,
per_people_f ppf
WHERE pha.vendor_id = pv.vendor_id
AND pha.agent_id = ppf.person_id
AND pha.org_id = TO_NUMBER (p_org_id)
AND pha.po_header_id = p_header_id;
----行信息
CURSOR c_line (x_header_id NUMBER)
IS
SELECT pda.destination_subinventory,
pll.quantity,
pla.line_num,
pla.unit_meas_lookup_code,
pla.unit_price,
pla.item_description item_desc,
pll.quantity * pla.unit_price amount,
pla.po_header_id,
pll.shipment_num,
msi.segment1 item,
pll.need_by_date need_by,
pll.ship_to_organization_id,
pll.promised_date,
pll.note_to_receiver,
ood.organization_code
FROM po_lines_all pla,
po_distributions_all pda,
po_line_locations_all pll,
mtl_system_items_b msi,
financials_system_params_all fsp,
org_organization_definitions ood
WHERE pla.po_line_id = pda.po_line_id
AND pll.line_location_id = pda.line_location_id
AND (pll.closed_code = 'OPEN' OR pll.closed_code IS NULL)
AND pla.item_id = msi.inventory_item_id(+)
AND pla.po_header_id = x_header_id
AND NVL (msi.organization_id, fsp.inventory_organization_id) =
fsp.inventory_organization_id
ERP REPORT
AND fsp.org_id = p_org_id
AND pll.ship_to_organization_id = ood.organization_id(+)
;
BEGIN
fnd_client_info.set_org_context(p_org_id);
HTP.htmlopen;
HTP.p ('<head>');
HTP.p ('<STYLE>');
HTP.p (' P { page-break-before: always }');
HTP.p ('</STYLE>');
HTP.p ('</head>');
HTP.bodyopen;
FOR lc_h IN c_header
LOOP
---title2
HTP.tableopen (
cattributes=> 'cellspacing=0 cellpadding=15 border=0 width='
|| v_page_width
|| ' bgcolor="#000000"'
);
HTP.tablerowopen (cattributes => 'bgcolor="#ffffff"');
HTP.tabledata (
cvalue=> '<font size="'
|| 3
|| '"> <b><U>采 购 单 据</b></U>',
cattributes=> 'width="16%"',
calign=> 'center'
);
HTP.tablerowclose;
HTP.tableclose;
---header
HTP.tableopen (
cattributes=> 'cellspacing=0 cellpadding=4 border=0 width='
|| v_page_width
|| ' bgcolor="#000000"'
);
HTP.tablerowopen (cattributes => 'bgcolor="#ffffff" height="8"');
ERP REPORT
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> 采购单号:'
|| lc_h.po_num,
cattributes=> 'width="15%"',
calign=> 'left'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> 采购类型:'
|| lc_h.type_lookup_code,
cattributes=> 'width="20%"',
calign=> 'left'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> 采购日期:'
|| TO_CHAR (lc_h.creation_date, 'YYYY/MM/DD'),
cattributes=> 'width="20%"',
calign=> 'left'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '">采购员:'
|| lc_h.full_name,
cattributes=> 'width="15%"',
calign=> 'left'
);
HTP.tablerowclose;
HTP.tableclose;
HTP.tableopen (
cattributes=> 'cellspacing=0 cellpadding=4 border=0 width='
|| v_page_width
|| ' bgcolor="#000000"'
);
HTP.tablerowopen (cattributes => 'bgcolor="#ffffff"');
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '">供应商:'
ERP REPORT
|| lc_h.vendor_name,
cattributes=> 'width="20%"',
calign=> 'left'
);
HTP.tablerowclose;
HTP.tableclose;
HTP.tableopen (
cattributes=> 'cellspacing=0 cellpadding=2 border=0 width='
|| v_page_width
|| ' bgcolor="#000000"'
);
HTP.tablerowopen (cattributes => 'bgcolor="#ffffff"');
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '">备注:'
|| lc_h.comments,
cattributes=> 'width="20%"',
calign=> 'left'
);
HTP.tablerowclose;
HTP.tableclose;
-- line
BEGIN
HTP.tableopen (
cattributes=> 'border="1" borderColorDark="#FFFFFF"
borderColorLight="#000000" cellPadding="0" cellSpacing="0" width='
|| v_page_width
|| ' '
);
HTP.tablerowopen (cattributes => 'bgcolor="#ffffff"');
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"><b> 项目</b></font>',
calign=> 'center',
cattributes=> 'width=18%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"><b> 货物名称</b></font>',
ERP REPORT
calign=> 'center',
cattributes=> 'width=22%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"><b> 单位</b></font>',
calign=> 'center',
cattributes=> 'width=6%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"><b> 采购单价</b></font>',
calign=> 'center',
cattributes=> 'width=8%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"><b> 数量</b></font>',
calign=> 'center',
cattributes=> 'width=7%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"><b> 金额</b></font>',
calign=> 'center',
cattributes=> 'width=13%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"><b> 需要日期</b></font>',
calign=> 'center',
cattributes=> 'width=10%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"><b> 仓库</b></font>',
calign=> 'center',
cattributes=> 'width=8%'
ERP REPORT
);
HTP.tablerowclose;
SELECT COUNT (pla.po_line_id)
INTO v_jes
FROM po_lines_all pla,
po_distributions_all pda,
po_line_locations_all pll,
mtl_system_items_b msi,
financials_system_params_all fsp,
org_organization_definitions ood
WHERE pla.po_line_id = pda.po_line_id
AND pll.line_location_id = pda.line_location_id
AND (pll.closed_code = 'OPEN' OR pll.closed_code IS NULL)
AND pla.item_id = msi.inventory_item_id(+)
AND pla.po_header_id = lc_h.po_header_id
AND NVL (msi.organization_id, fsp.inventory_organization_id) =
fsp.inventory_organization_id
AND fsp.org_id = p_org_id
AND pll.ship_to_organization_id = ood.organization_id(+);
FOR lc_l IN c_line (lc_h.po_header_id)
LOOP
HTP.tablerowopen (cattributes => 'bgcolor="#ffffff"');
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> '
|| '&'
|| 'nbsp'
|| lc_l.item,
calign=> 'left',
cattributes=> 'width=16%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> '
|| '&'
|| 'nbsp'
|| lc_l.item_desc,
calign=> 'left',
cattributes=> 'width=22%'
ERP REPORT
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> '
|| '&'
|| 'nbsp'
|| lc_l.unit_meas_lookup_code,
calign=> 'left',
cattributes=> 'width=6%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> '
|| '&'
|| 'nbsp'
|| lc_l.unit_price,
calign=> 'right',
cattributes=> 'width=12%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> '
|| '&'
|| 'nbsp'
|| lc_l.quantity,
calign=> 'right',
cattributes=> 'width=7%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> '
|| '&'
|| 'nbsp'
|| lc_l.amount,
calign=> 'right',
cattributes=> 'width=13%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
ERP REPORT
|| '"> '
|| '&'
|| 'nbsp'
|| TO_CHAR (lc_l.PROMISED_DATE, 'YYYY/MM/DD'),
calign=> 'center',
cattributes=> 'width=10%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> '
|| '&'
|| 'nbsp'
|| lc_l.organization_code,
calign=> 'center',
cattributes=> 'width=6%'
);
t_qty := t_qty
+ lc_l.quantity;
t_amount := t_amount
+ lc_l.amount;
END LOOP;
v_jes := max_line
- v_jes;
LOOP
EXIT WHEN v_jes <= 0;
HTP.tablerowopen (cattributes => 'bgcolor="#ffffff"');
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> <b>'
|| '&'
|| 'nbsp'|| ' ' ,
calign=> 'center',
cattributes=> 'width=18%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> <b>'
|| '&'
ERP REPORT
|| 'nbsp' || ' ',
calign=> 'center',
cattributes=> 'width=22%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> <b>'
|| '&'
|| 'nbsp' || ' ',
calign=> 'center',
cattributes=> 'width=6%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> <b>'
|| '&'
|| 'nbsp' || ' ',
calign=> 'center',
cattributes=> 'width=8%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> <b>'
|| '&'
|| 'nbsp' || ' ',
calign=> 'center',
cattributes=> 'width=7%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> <b>'
|| '&'
|| 'nbsp' || ' ',
calign=> 'center',
cattributes=> 'width=13%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> <b>'
ERP REPORT
|| '&'
|| 'nbsp' || ' ',
calign=> 'center',
cattributes=> 'width=10%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> <b>'
|| '&'
|| 'nbsp' || ' ',
calign=> 'center',
cattributes=> 'width=8%'
);
v_jes := v_jes
- 1;
END LOOP;
--sum
HTP.tablerowopen (cattributes => 'bgcolor="#ffffff"');
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> <b>'
|| '合计',
calign=> 'center',
cattributes=> 'width=18%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> <b>'
|| '&'
|| 'nbsp' || ' ',
calign=> 'center',
cattributes=> 'width=22%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> <b>'
|| '&'
|| 'nbsp' || ' ',
calign=> 'center',
ERP REPORT
cattributes=> 'width=6%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> <b>'
|| '&'
|| 'nbsp',
calign=> 'center',
cattributes=> 'width=8%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> '
|| '&'
|| 'nbsp'
|| t_qty,
calign=> 'right',
cattributes=> 'width=7%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> '
|| '&'
|| 'nbsp' || ' '
|| t_amount,
calign=> 'right',
cattributes=> 'width=13%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> '
|| '&'
|| 'nbsp' || ' ',
calign=> 'right',
cattributes=> 'width=10%'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> '
ERP REPORT
|| '&'
|| 'nbsp' || ' ',
calign=> 'right',
cattributes=> 'width=8%'
);
HTP.tablerowclose;
HTP.tableclose;
END;
HTP.tableopen (
cattributes=> 'cellspacing=0 cellpadding=8 border=0 width='
|| v_page_width
|| ' bgcolor="#000000"'
);
HTP.tablerowopen (cattributes => 'bgcolor="#ffffff"');
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '"> 打印人:',
cattributes=> 'width="10%"',
calign=> 'left'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '">部门主管:',
cattributes=> 'width="10%"',
calign=> 'left'
);
HTP.tabledata (
cvalue=> '<font size="'
|| v_font_size
|| '">总经理:',
cattributes=> 'width="10%"',
calign=> 'left'
);
HTP.tablerowclose;
HTP.tableclose;
END LOOP;
HTP.tableclose;
HTP.bodyclose;
HTP.htmlclose;
END; </span>
开发好后注册程序:
路径:系统管理员->安全性->WEB PL/SQL
然后在需要的地方调用就可以直接打印出报表
DECLARE
v_command VARCHAR2 (200);
v_org_id NUMBER := fnd_profile.VALUE ('ORG_ID');
BEGIN
v_command := fnd_profile.VALUE ('APPS_WEB_AGENT');
v_command := v_command || '/CUXTS001?p_header_id=' || :submit.header_id;
v_command := v_command || '&p_org_id=' || TO_CHAR (v_org_id);
web.show_document (v_command, '_blank');
END;
利用HTP工具包开发报表的更多相关文章
- 使用Birt开发报表
间隔一段时间未使用Birt开发报表后,本文章记录Birt开发报表的常遇到的开发问题及解决措施,方便自己和园内其他朋友学习. 一.Birt连接数据库配置 1.连接DB2数据库: 1.1.birt的数据连 ...
- 我利用网上特效开发的Jquery插件
我利用网上特效开发的Jquery插件 代码如下 (function($){ $.fn.Dialogx = function(options) { var defaults={ Width:" ...
- 我利用网上代码开发的JQuery图片插件
我利用网上代码开发的JQuery图片插件 代码如下 (function($){ $.fn.FocusPic = function(options){ var defaults = { interval ...
- c# FastReport开发报表
本文介绍c#应用FastReport开发报表,因此首先附该工具下载地址:http://download.csdn.net/detail/hws1058648831a/6378499 下载解压后可以直接 ...
- Git 分支-利用分支进行开发的工作流程
3.4 Git 分支 - 利用分支进行开发的工作流程 利用分支进行开发的工作流程 现在我们已经学会了新建分支和合并分支,可以(或应该)用它来做点什么呢?在本节,我们会介绍一些利用分支进行开发的工作流程 ...
- 运用 finereport 和 oracle 结合开发报表思路大总结
近排自己学习了一款软件finereport开发报表模块,自己总结了如何了解需求,分析需求,再进行实践应用开发,最后进行测试数据的准确性,部署报表到项目对应的模块中显示. 一.需求(根据需求文档分析) ...
- 【转】利用 three.js 开发微信小游戏的尝试
前言 这是一次利用 three.js 开发微信小游戏的尝试,并不能算作是教程,只能算是一篇笔记吧. 微信 WeChat 6.6.1 开始引入了微信小游戏,初期上线了一批质量相当不错的小游戏.我在查阅各 ...
- [转]利用Docker构建开发环境
利用Docker构建开发环境 Posted by makewonder on 2014 年 4 月 2 日 最近接触PAAS相关的知识,在研发过程中开始使用Docker搭建了自己完整的开发环境, ...
- 四、利用EnterpriseFrameWork快速开发基于WCF为中间件的三层结构系统
回<[开源]EnterpriseFrameWork框架系列文章索引> EnterpriseFrameWork框架实例源代码下载: 实例下载 本章内容与上一张<利用Enterprise ...
随机推荐
- tomcat7+jdk的keytool生成证书 配置https
目前只会使用jdk的keytool来生成证书.本文仅介绍这种方法. 1Windows下: 1.1 生成keystore文件及导出证书 打开控制台: 运行: %JAVA_HOME%\bin\keytoo ...
- 单页应用动态设置页面title
1.适用场景:所有通过router路由的单页应用. 2.示例代码:本文以vue-router为例. 在router.js中: let router = new Router({ routes: [ { ...
- 02 基础设施/Gitlab - DevOps之路
基础设施/Gitlab - DevOps之路 文章Github地址,欢迎start:https://github.com/li-keli/DevOps-WiKi 源代码管理器选用Gitlab,新版(2 ...
- 服务器&阵列卡LSI SAS223&组raid 10
组raid10 如配置: raid LSI SAS2236 双E5-2450L 96G 4*1TB 要求: 至少4块HDD 将接上Raid card的机器开机,根据提示按组合键进入Raid配置界面 ...
- jQuery – AJAX get() 和 post() 方法
jQuery get() 和 post() 方法用于通过 HTTP GET 或 POST 请求从服务器请求数据. HTTP 请求:GET vs. POST 两种在客户端和服务器端进行请求-响应的常用方 ...
- Matlab—regexp正则表达式
原文转自:http://blog.csdn.net/yf210yf/article/details/42421523 关于正则表达式的基本知识 正则表达式就是一个表达式(也是一串字符),它定义了某种字 ...
- proc文件系统探索 之 以数字命名的目录
在proc根目录下,以数字命名的目录表示当前一个运行的进程,目录名即为进程的pid.其内的目录和文件给出了一些关于该进程的信息. niutao@niutao-desktop:/proc/6584$ l ...
- 手把手教你做一个Shell命令窗口
这是一个类似于win下面的cmd打开后的窗口,可以跨平台使用,可以在win和linux下面同时使用,主要功能如下: 首先我们需要把这些功能的目录写出来,通过写一个死循环,让其每次回车之后都可以保持同样 ...
- 国内外主流BI工具介绍和点评
商业智能的应用在国外已广为普及,并且开始不断探索大数据和云技术.而国内,商业智能BI工具在这几年才开始慢慢被接受,企业开始有意识地建立一体化数据分析平台,为经营决策提供分析. 从国内企业使用情况来看, ...
- Spark技术内幕:Storage 模块整体架构
Storage模块负责了Spark计算过程中所有的存储,包括基于Disk的和基于Memory的.用户在实际编程中,面对的是RDD,可以将RDD的数据通过调用org.apache.spark.rdd.R ...