精华内容
参与话题
问答
  • Catalyst

    2008-12-20 19:45:00
    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/topmvp - topmvpWritten for web developers with basic Perl skills, ...
    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/topmvp - topmvp
    Written for web developers with basic Perl skills, this book guides new users through the open-source Perl-based Model-View-Controller Catalyst framework using real-world examples and systematic code snippets, covering application design, development, testing, and deployment. If you are excited by Ruby on Rails but prefer the familiarity of Perl, get this book and get started. The way that many web applications are implemented makes development painful and repetitive. Catalyst solves this problem, organizing your web application to design and implement it in a natural, maintainable, and testable way. Its philosophies are Do It Yourself and Don't Repeat Yourself. Everything is written only once; database access and configuration are centralized; you just write actions for each URL in your application and Catalyst handles the details. Catalyst is designed to be reliable; the code is well tested; there are hundreds of production applications, thousands of users, and a thriving community.
    http://rapidshare.com/files/100731289/1847190952.zip
    http://depositfiles.com/files/4212565
    展开全文
  • Catalyst package

    2020-11-29 09:30:44
    <div><p>New package file to install Catalyst as a module.</p><p>该提问来源于开源项目:spack/spack</p></div>
  • Catalyst compatibility

    2020-12-02 12:05:31
    <div><p>Has anyone used/modified this script to build the Boost framework for Mac Catalyst?</p><p>该提问来源于开源项目:faithfracture/Apple-Boost-BuildScript</p></div>
  • catalyst入门

    2014-03-08 19:34:08
    Catalyst是一套用来web开发的框架,基于Catalyst开发的web系统,具有比较强的可扩展性.
  • Catalyst support

    2020-12-09 06:18:30
    <div><p>Are there any plans to bring catalyst support to this library. I'd love to bring my iPad app to the Mac, but as of the current betas selecting the Mac target on a iOS app results in the ...
  • Need Catalyst support

    2020-11-19 11:23:20
    <div><p>Would appreciate Catalyst support. I can build for Catalyst without problems but I cannot store and retrieve data in my Catalyst app. </div>
  • 用于Cisco Catalyst 6500系列交换机和Cisco 7600系列路由器的Cisco Catalyst 6500系列防火墙服务模块(FWSM)是一种高速的、集成化的防火墙服务模块,可以提供5.5Gb的吞吐量,每秒10万个连接,以及一百万个并发连接...
  • Mac Catalyst

    2020-05-13 11:29:53
    When you use Mac Catalyst to create a Mac version of your iPad app, you make your app available to a new audience while giving existing users the opportunity to enjoy it in a new environment. ...

    When you use Mac Catalyst to create a Mac version of your iPad app, you make your app available to a new audience while giving existing users the opportunity to enjoy it in a new environment.

    Image of a MacBook Pro and an iPad Pro, both running the Ocean Journal app. The Mac version of the app uses two separate windows to display the content; the iPad version uses a split view.

    For developer guidance, see Creating a Mac Version of Your iPad App.
    Before You Start

    Most iPad apps are great candidates for adaptation, but some rely on iPad features that don’t exist on a Mac. For example, if your app’s essential features require iPad capabilities like gyroscope, accelerometer, or rear camera, iOS frameworks like HealthKit or ARKit, or the app’s main function is something like navigation, it might not be suited for the Mac.

    For apps that don’t require iPad-only features, the best way to ensure that your app will work well on a Mac is to make sure it works well on iPad. In particular, your app should:

    Support multitasking. Apps that do a good job scaling the interface to support Split View, Slide Over, and Picture in Picture approach the ultimate goal of supporting the extensive window resizability that Mac users expect.
    Support drag and drop. When you support drag and drop in your iPad app, you get the same support on the Mac for free.
    Respond to keyboard shortcuts, including common macOS shortcuts. Even though a keyboard may not always be available to your iPad app, both iOS and macOS users appreciate using keyboard shortcuts to streamline their interaction with your app.
    

    Plan Enhancements for Your Mac App

    When you use Mac Catalyst to create a Mac version of your iPad app, you get automatic support for fundamental Mac features, such as:

    System Preferences
    Keyboard, trackpad, mouse, and Touch Bar input, including key focus and keyboard navigation
    Window management
    Rich text interaction, including copy and paste and contextual menus for editing
    File management
    

    In addition, many system-provided UI elements automatically convert from iOS to macOS. For example, you get macOS-appropriate versions of the following iOS-provided items:

    Split view
    File browser
    Activity view
    Form sheet
    Contextual actions
    

    To ensure that your app gives people a rich Mac experience, it’s essential to enhance this foundation and go beyond simply displaying your iOS UI in a macOS window. Before you dive in and update specific views and controls, become familiar with the main differences between the platforms so that you can create an app that feels at home on the Mac. (For comprehensive design guidance for macOS apps, see macOS Human Interface Guidelines.)

    iOS and macOS each define design patterns and conventions for user interaction that are rooted in the different ways people use their devices. For example, iOS conventions such as swipe to delete, action sheet commands, and controls at the bottom of the screen are optimized for touch interactions on a handheld device. In a similar way, macOS conventions such as dedicated keys and keyboard shortcuts, menu commands, and controls at the top of the window are optimized for keyboard, mouse, and trackpad interactions and a separate display.

    The conventions and design patterns that have the biggest impact on adaptation can be grouped into four key areas.

    Navigation. Many iOS and macOS apps organize data in similar ways, but they use different controls and visual indicators to help people understand and navigate through the data. For specific guidance, see Adopt macOS App Structure and Navigation Conventions.

    User input and interactions. Although both iPad and Mac accept user input from a range of devices — such as the Multi-Touch display, keyboard, mouse, and trackpad — touch interactions inform iOS conventions, whereas keyboard and mouse interactions originated the conventions for macOS. For related guidance, see Support macOS User Interactions.

    Menus. Mac users are familiar with the persistent menu bar and expect to find all app commands in menu bar menus. iOS, on the other hand, doesn’t have a persistent menu bar, and iOS users expect to find app commands in the app’s UI. For related guidance, see Put App Commands into Menus.

    Content scaling. Text in the macOS version of an iPad app looks the same as it does in iOS because SF fonts are available on both platforms. However, the baseline font size in iOS is 17 pt, whereas the most common font size in macOS is 13 pt. To ensure that your text and interface elements are consistent with the macOS display environment, iOS views automatically scale down to 77%. For related guidance, see Typography.

    In addition to adopting macOS interaction and design conventions, you need to update your visual design and layout to take advantage of the wider Mac screen in ways that give macOS users a great experience. For example, you might:

    Divide a single column of content and actions into multiple columns
    Present an inspector UI next to the main content instead of within a popover
    Simultaneously show two or more levels of an app’s hierarchy
    

    For more guidance, see Visual Design Considerations.

    Ideally, viewing your iPad app from the perspective of macOS design conventions can suggest ways to improve the iOS version, too. Although you want to make sure that each version remains true to the conventions of its platform, take this opportunity to revisit the design of your original app. Especially if your iPad app originated on iPhone, consider reassessing the ways you lay out views and controls to see if there are places where you can make better use of the large iPad screen.
    Adopt macOS App Structure and Navigation Conventions

    Well-designed app navigation reflects the structure of the data and supports the main purpose of the app in ways that follow the platform’s conventions. To help macOS users feel at home in your app, you need to translate the iOS navigation conventions to the equivalent macOS conventions.

    Most iPad apps use either flat or hierarchical navigation, and some use a combination of both. Flat navigation presents areas of functionality or categories of data as peer groups that are always available. For example, Music and App Store use flat navigation to give people persistent access to high-level areas such as Library, For You, Browse, Today, and Games. Hierarchical navigation presents information in a tree-like organization through which people navigate by choosing one item per view until they reach their destination. In Settings, for example, people can customize text replacements by choosing General > Keyboards > Text Replacement.

    Typically, iPad apps use the following UIKit controls to implement navigation:

    Tab bar. A tab bar supports flat navigation by displaying top-level categories in a persistent bar at the bottom of the screen.
    Page control. A page control displays dots at the bottom of the screen that indicate the position of the current page in a flat list of pages.
    Split view. A split view enables hierarchical navigation by presenting items and functionality in a primary view (also called a master view) and a secondary view (also called a detail view). When people select an item in the primary view, a split view displays the content associated with that item in the secondary view.
    

    If you use a tab bar in your iPad app, consider using a segmented control or the sidebar background style in a split view controller. Both items are similar to navigation conventions in Mac-style windows. To choose between these items, consider the following:

    A segmented control and a tab bar both accommodate similar interactions — such as mutually exclusive selection — so a segmented control is a good alternative for a straightforward adaptation. A segmented control is ideal for iPad apps that don’t have a lot of hierarchy within each tab, because it can be paired with a sidebar to enable navigation within a tab.
    A sidebar displays a list of top-level items, each of which can disclose a list of child items. Using a sidebar streamlines navigation because you can let people view each tab’s contents within the sidebar. Sidebars are a good choice for displaying app-defined or user-defined categories that don’t change very often. For example, the Following and Suggested categories in the News sidebar don’t change, even though people can change the items listed in each category.
    

    You can also combine a segmented control and a sidebar in your app. For example, you might use a segmented control to contain the tabs, and a sidebar to display the contents of each tab. Regardless of how you adapt the tab bar, be sure to give people quick access to each tab’s content through the macOS View menu. To learn more about menus, see Put App Commands into Menus.

    If you use a split view in your iPad app, macOS automatically translates it to a split view in the Mac version of your app. On both platforms, a master view is a good choice for presenting a list of items that can vary — such as the list of mailboxes in Mail — because it lets you include labels and icons and it supports sorting and filtering. However, if your content hierarchy is deeper than two levels, the middle levels between the master view and the current detail view aren’t visible in the Mac-style window. To ensure that people can retrace their steps, include a back button in the toolbar.

    If you use a page control, or another way to enable lateral navigation, give people specific controls to view pages. If you support this type of lateral navigation, you can help people navigate through pages in your Mac-style window by displaying a Next/Previous button in the toolbar and adding navigation commands to a menu bar menu. For example, Stocks in macOS displays both a Back button in the toolbar and Next Story and Previous Story commands in the View menu.

    If you support multiple windows in your iPad app, you get support for multiple windows in the macOS version, too. In addition, many macOS apps let people open documents or other content in a new tab instead of in a new window. For example, people can open a different webpage per tab in a Safari window or a different file system location per tab in a Finder window. When people use System Preferences to prefer tabs over windows, the system dynamically adds the relevant menu items to an app’s menus, such as View > Show Tab Bar and Window > Show Next Tab.
    Support macOS User Interactions

    Selection persistence is a fundamental difference in user interaction between iOS and macOS. Because many macOS users expect to control apps and the system using only the keyboard, the selected state of objects must persist so that people can use one sequence of key presses to select an object and a second sequence to act upon it. In contrast, iOS users expect to act upon an object without selecting it first, so objects don’t need to retain their selected state. As a general rule, iOS apps don’t tend to be optimized for keyboard interactions.

    Here are some ways that different interaction conventions can affect the user experience:

    macOS users often want Next and Previous buttons in place of iPad or trackpad gestures such as swiping among pages.
    On a Mac, people expect to use the Delete key or select a Delete command in a menu, so displaying a Delete button in the UI is usually unnecessary.
    iOS users are accustomed to pulling down on a view to refresh the contents. In contrast, Mac users expect to use a menu command, such as Check for New Content.
    

    As you translate iPad user interaction patterns to Mac interactions, focus on letting people manipulate objects in ways that adhere to platform conventions.
    Keyboard Input

    Be prepared to support keyboard conventions that let people change a persistent selection by using arrow keys or by pressing letter and number keys.

    If it makes sense in your app, take advantage of the fact that Mac users can easily use the keyboard and the mouse or trackpad at the same time.

    If you implement UIKeyCommand in your iPad app to define keyboard sequences for commands, the macOS version of your app translates these shortcuts to the menus. For example, you should map each major view area, such as each tab, to the keyboard shortcuts ⌘1, ⌘2, and so on for display in the View menu of the macOS version of your app.

    If there’s a Delete button in the UI of your iPad app, consider removing it from the macOS version and letting people use the Delete key or the app’s Edit > Delete menu command instead.
    Gestures

    When your iPad app runs in macOS, most gestures convert automatically. For example:
    iPad gesture… Translates to mouse interaction
    Tap Left or right click
    Touch and hold Click and hold
    Pan Left click and drag
    iPad gesture… Translates to trackpad gesture
    Tap Click
    Touch and hold Click and hold
    Pan Click and drag
    Pinch Pinch
    Rotate Rotate

    DEVELOPER NOTE
    The two touches in the pinch and rotate gestures get sent to the view under the pointer, not the view under each touch.
    Put App Commands into Menus

    On a Mac, the menu bar at the top of the screen gives people a consistent location for commands that control both apps and the system. The menu bar contains the standard and custom menus supplied by the current app, in addition to the Apple menu, which lists system-level commands that are always available. Mac users expect every macOS app to make all its commands available in the menu bar.

    DEVELOPER NOTE
    You must use UICommand to represent each command in your iPad app so that these commands can be put into macOS menu bar menus. To support keyboard shortcuts for commands, use UIKeyCommand.

    Because iPad apps use controls to display commands in the main UI, finding a logical and intuitive menu bar location for every app command is a key part of the adaptation process.

    To design the menu bar menus for the macOS version of your app, start by listing all the actions that people can perform and grouping them into the categories defined by the standard menu bar menus. For example:

    App Name
    File
    Edit
    View
    Window
    Help
    

    NOTE
    Most macOS apps include a View menu and a Window menu. Although these menus may seem similar, they have different purposes. People use the View menu to customize the appearance of app windows and to move among different functional areas, whereas they use the Window menu to navigate, organize, and manage the collection of windows in an app. To learn more, see Menu Bar Menus.

    If some of the actions on your list don’t make sense in the standard menu bar menus, you might need to add a custom menu. Mac apps often add a custom menu bar menu for commands that are associated with either a core app object or a core app workflow. For example, Mail in macOS uses the Message and Mailbox menus to list commands that operate on these fundamental app objects. In contrast, Keynote uses the Arrange menu to list commands associated with the core workflow of arranging objects in a slide deck.

    After you group your app’s actions into menus, you need to order the items in each menu in a way that makes sense. Each standard menu defines a recommended order for items, so it’s important to follow this order for the items that you support. For example, Mac users expect the File menu to present items in this order:

    New...
    Open...
    Open Recent
    Close
    

    In a custom menu bar menu, you should order the items according to importance, frequency of use, or another scheme that makes sense in your app. Menu bar menus can also contain submenus and separators that help group items in logical ways. To learn more about these menu components, see Menu Anatomy.

    Also, it’s important to support keyboard shortcuts for all common commands in your menus so that both Mac users and iPad users who use keyboards can benefit. In addition to enabling the shortcuts for standard menu items, you can also define shortcuts for custom items. If custom menu items make sense in your app, be sure to review the guidance for creating custom keyboard shortcuts in Defining Keyboard Shortcuts.
    Contextual Menus

    Contextual menus help people discover the actions that they can perform on an object without opening a menu bar menu. If you support context menus in your iPad app, the system automatically converts them to contextual menus in the macOS version of your app.

    To give Mac users the best experience, look for additional places to support contextual menus. For example, if there are common actions that people can perform on an object in your app, add a contextual menu that lists these actions. You can also add a contextual menu to a view that represents an object — for example, folder objects in the Finder support contextual menus that offer actions like Open in New Tab, Rename, and Duplicate.
    Visual Design Considerations

    To help your iPad app look great when it runs in macOS, take into account the platform differences in the following areas of visual design.
    Layout

    Mac users expect to resize app windows to just about any size from full screen to as small as the app permits. To support this type of infinite resizability — and to take advantage of the Mac’s wider display — use the regular width and regular height size classes and consider reflowing elements in your window’s content area to a side-by-side arrangement when necessary.

    As much as possible, adopt a top-down layout. macOS apps place the most important actions and content near the top of the window. If your iPad app provides controls in a toolbar or navigation bar, put these controls in the window toolbar of the macOS version of your app.

    Consider moving controls from the main UI of your iPad app to the toolbar of your macOS window. Also, list the commands associated with these controls in the menus of your macOS app’s menu bar.

    NOTE
    In macOS, a toolbar button is always visible, but the current context might make it unavailable; in iOS, a toolbar button is always available, but the current context might remove it from the toolbar. For example, if your iPad app includes a toolbar button that works in only one tab, the macOS version displays the button as unavailable in all other tabs. To avoid confusing people, it can work better to use a “gear” button in the toolbar instead, because the items in a gear button’s menu differ depending on the current app section.

    Relocate buttons from the left or right edge of the screen. On iPad, placing buttons on the middle left or middle right screen edges can help people reach them, but on a Mac, this ergonomic consideration doesn’t apply. You may want to relocate controls to the top or bottom edge of the content area or put them in the toolbar of your macOS window.
    Color

    Use the system selection color on both platforms. In general, iOS apps define the colors used to tint buttons and to indicate selection, but in macOS, people expect to use System Preferences to choose the selection and button colors they want.

    The dynamic system colors designed for iOS backgrounds automatically map to appropriate macOS equivalents, as shown below.
    iOS color Equivalent macOS color
    systemBackground selectedContentBackgroundColor
    secondarySystemBackground windowBackgroundColor
    tertiarySystemBackground selectedContentBackgroundColor (overlaid with quaternaryLabelColor)
    systemGroupedBackground windowBackgroundColor
    secondarySystemGroupedBackground selectedContentBackgroundColor
    tertiarySystemGroupedBackground selectedContentBackgroundColor (overlaid with quaternaryLabelColor)

    Other semantically defined iOS colors — such as the system colors and the label and separator colors — map to similarly named macOS colors. For guidance, see System Colors (macOS) and Dynamic System Colors (macOS).

    Don’t tint buttons in table rows. In your iPad app, you use a tint to show that buttons in table rows are active, but in macOS, tinted buttons in table rows look out of place.
    Typography

    Although the automatic scaling performed by the system gives good results without requiring you to specify different font values on both platforms, you might not get the best results in every situation.

    Make sure small type is legible on the Mac. Be prepared to increase some of the smallest font sizes you use in your iPad app so that all text remains legible in the macOS version. Also, note that Dynamic Type is not supported in macOS.
    Custom Icons and Glyphs

    Create a macOS version of your app icon. Great macOS app icons are noticeably different from great iOS app icons — for example, macOS icons can have nonrectangular shapes and are often skewed and rotated. By default, macOS applies a drop shadow to your iOS app icon so that it feels more at home on a Mac, but it’s better to design a Mac-specific version of your app icon. To learn more about how to approach the design of a macOS app icon, see App Icon.

    Create platform-specific glyphs, if necessary. If your iPad app uses custom glyphs that reference the platform in some way, create new glyphs that feel at home on the Mac. Xcode provides a separate asset catalog you can use in your iPad app for macOS-specific glyphs.
    Preferences

    If you supply app settings that appear in the iOS Settings app, macOS automatically displays these items in a preferences window in the Mac version of your app. By default, macOS adds a toolbar button to the preferences window for each item in your iOS settings, giving it the standard system preferences icon and the title you used for the item’s view in the Settings app.

    As Mac users expect, your preferences window appears when they choose the Preferences menu item in your app menu. However, there are a few ways you can refine the display of your settings items and make your app’s preferences experience feel more Mac-like.

    Customize the icon for each item’s toolbar button. Because macOS automatically uses the standard system preferences icon for your settings items, people will have to read each toolbar button’s title to distinguish among multiple items. To improve this experience, supply a custom icon for each settings item.

    Make switch controls easier for macOS users to understand. Unlike iPad apps, a macOS app often displays a confirmation alert when someone uses a switch to make changes in System Preferences. In addition, a switch in iOS Settings can include a small amount of text that provides more information about how the switch affects the user experience. In the Mac version of your app, you can provide a brief description to accompany a macOS switch and you can specify content to display in a confirmation alert when people use it to change a setting. For developer guidance, see Displaying a Preferences Window.

    展开全文
  • Mac Catalyst support

    2020-12-02 12:06:47
    I wonder if there are any plans on supporting Mac Catalyst architecture for iOS? I'm currently using mobile-ffmpeg via cocoapods in my app and want to build a macos version using Catalyst. ...
  • macCatalyst support

    2020-12-09 10:47:12
    re building a macCatalyst version of our application, but some of the symbols used inside Auth0 are not available for macCatalyst. Specifically, <code>SFAuthenticationError</code> symbols are ...
  • Mac Catalyst Support

    2021-01-07 21:01:53
    Is it possible to get this library to work on Mac using Mac Catalyst? <code>'SecAddSharedWebCredential' is unavailable</code> on macCatalyst. <p>Thanks!</p><p>该提问来源于开源项目:...
  • <div><p>Dear Catalyst Maintainers, <p>Before I tell you about my issue, let me describe my environment: <h1>Environment <ul><li>Operating System: Linux trading-bot 4.13.0-39-generic #44-Ubuntu SMP Thu...
  • Catalyst9.zip

    2020-05-12 22:28:27
    Alchemy Catalyst是一款功能强大的老牌的可视化软件本地化工具。支持 VC、VB、.NET、文本等软件的本地化。CATALYST 的特色包括:方案以资源树的方式显现;与 LocStudio 一样也支持“伪翻译”;支持.rc 文档的可视化...
  • Mac Catalyst xcframework

    2020-12-09 09:29:51
    <div><p>In order to support Mac Catalyst you'll need to start producing an xcframework. I've already got it working for CPAProxy: ...
  • Cisco Catalyst 4500系列提供灵活的模块化解决方案,使网络能轻松地适应变化和未来技术。可扩展的集中式体系结构采用了无源背板设计,能够通过Cisco Catalyst Supervisor Engine升级灵活地利用新功能。Catalyst 4500...
  • <div><p>Dear Catalyst Maintainers, <h1>Pip install seems to be broken <p>I am trying to install a fresh virtualenv for Catalyst on Ubuntu 16.04. When I do <code>pip install enigma-catalyst matplotlib,...
  • MacCatalyst support

    2020-12-01 22:08:14
    <div><p>I experience a Catalyst problem - is there a solution or workaround? <h3>Expected behavior <p>I expected the library to work also in a combined iOS/macOS project (Catalyst). <h3>Actual ...
  • Catalyst揭秘 Day1 Catalyst本地解析 今天开始讲下Catalyst,这是我们必须精通的内容之一: 在Spark2.x中,主要会以Dataframe和DataSet为api,无论是Dataframe和DataSet,底层都依赖Catalyst和Tungsten。 根据官方...

    Catalyst揭秘 Day1

    Catalyst本地解析

    今天开始讲下Catalyst,这是我们必须精通的内容之一:

    1. 在Spark2.x中,主要会以Dataframe和DataSet为api,无论是Dataframe和DataSet,底层都依赖Catalyst和Tungsten。
    2. 根据官方的披露,后续所有的框架都会依赖Catalyst和Tungsten。
      从定位上看,catalyst是在SparkSql上先做实验,后面是机器学习,现在要推到各个子框架。

    基本概念

    catalyst是一种解析器引擎,而不仅是sql解析引擎。如果研究下catalyst,可以在当中非常方便的添加你想做的任意新的优化技术,在优化技巧方面可以随意的扩展。也很少有解析器像catalyst这样可以方便的增加新的数据类型。

    catalyst的数据结构是棵树状结构,并有一系列的rules的解析规则。我们以前在很多语言开发的时候,都会解析成一颗语法树,catalyst是把sql和dataframe的内容用tree来存储。第二个层面,Catalyst中有一套解析规则,怎么对树进行解析和优化。

    从jvm对内存的管理来说,内存中的所有object也是树状结构的,那catalyst用一棵树在存储的话,每个节点都是类的实例,都有0个或多个子节点,并且节点是不可变,只能把一棵树从一种状态transform到另一种状态。

    Tree结构解析

    Catalyst主要包含两点:

    1. Tree数据结构;
    2. Rules解析规则;
    3. 优化方式;

    如何理解Tree数据结构:
    比如表达式 x + (5 + 10),当中包含:
    Literal:5 10
    Attribute:x
    Action:Add

    可以用下图表示:

    Snip20160719_99

    Catalyst中使用一系列的Rules来解析和优化Tree数据结构,对于上述的树状数据结构,优化过程可以如下,把常量合并在一起。由于表达式是一个对象,对象有类型,所以可以使用模式匹配,对于不认识的类型可以忽略,并且添加新的类型会很容易,导致了我们的扩展和操作非常的方便,只要不断执行匹配规则就行。当我们写优化规则的时候,只需要考虑不同的算子,根本就不用这棵树有多大。因为catalyst会循环运用我们的规则,只到这棵树不可以被解析和优化,这让我们会很方便改变规则,也会很方便优化引擎。

    tree.tranform{
            case Add(Literal(x),Literal(y)) => Literal(x+y)
            case
            ...
        }
    

    执行过程

    一般来说分为六步:

    Snip20160719_100

    1. SQL、Dataframe、DataSet都会变成Unrecognized Logic Plan未识别的逻辑计划,这是一棵抽象语法树,数据表和列名等都还未被识别。
    2. 用catalog来识别表和列名等东西,并且会对值进行一些简单的计算,建立Logic Plan。
    3. 运用rules对上一阶段成果进行优化,比如谓词下推,形成Optimized Logic Plan优化后的逻辑计划。
    4. 根据基于成本的考量,比如将小表进行broadcast,形成pyshical plan物理计划。 在做sparksql时,其实做不了啥太多的优化。物理计划已经是基于rdd角度的考虑了。

    Snip20160719_103

    1. 会根据评估模型,在很多个物理计划的选项中,选中最快的物理计划。由于有这个环节,dataframe一般情况下比直接写rdd运行快。
    2. 借助scala语言的高级特性quasiquotes,将物理计划,直接变成jvm的字节码。基于rdd进行编程。

    从整个过程,我们可以看到在框架抽象的时候,并不是越底层越高效,因为如果能加入优化层次,会对开发者有很大的助力。

    欲知后事如何,且听下回分解!

    DT大数据每天晚上20:00YY频道现场授课频道68917580

    转载于:https://www.cnblogs.com/dt-zhw/p/5686624.html

    展开全文
  • Cisco Catalyst 4948以成熟的Cisco Catalyst4500系列硬件和软件架构为基础,为高性能服务器和工作站的低密度、多层汇聚提供了出色性能和可靠性。
  • ATI Catalyst v7.10

    2019-11-03 08:33:08
    ATi最新的Catalyst 7.10驱动,大幅提升Radeon HD和Radeon X1000系列显卡的性能。由于主要的性能提升着重在FPS游戏,因此AMD称该驱动为"Shoot 'em up" (全面射击,同名电影翻译为赶尽杀绝或火线保镖)。
  • CATALYST2926G型交换机是拥有千兆比特以太网上联功能和第三层交换能力的固定配置10/100M自适应交换机。CATALYST2926G在一固定配置的配线间设备上提供多层交换机和千兆比特以太网。
  • Cisco Catalyst 3750系列通过提供配置灵活性、支持融合网络模式及自动进行智能网络服务配置,简化了融合应用的部署,并可针对不断变化的业务需求进行调整。此外,Cisco Catalyst 3750系列针对高密度千兆位以太网部署...
  • 设备是Catalyst8540 CSR 。配置了ISL.VLAN.BVI,并且采用了HSRP协议。这些例子中是用的是IP地址的保留地址,在拥护网络中使用时要更换成你们自己想要的合法IP地址。 本文将为大家介绍思科Catalyst8500配置的实例。
  • 除防火墙保护外,Cisco Catalyst6500系列交换机还在企业园区网边缘提供其它保护。它不但能防止内部网络遭受非法设备和用户的侵入,还能检测并防止袭击。思科建议,为维护企业园区网的完整性,最好在Cisco Catalyst ...
  • Support for mac catalyst

    2020-11-27 19:04:43
    <div><p>This PR adds support for mac catalyst (UIKit for Mac) (#408). The main changes are: - Enabled the Mac checkbox on iOS framework targets (AppAuth_iOS and AppAuthCore) to make them compatible ...

空空如也

1 2 3 4 5 ... 20
收藏数 3,557
精华内容 1,422
关键字:

catalyst