Announcing dplyrXdf 1.0

I’m delighted to announce the release of version 1.0.0 of the dplyrXdf package. dplyrXdf began as a simple (relatively speaking) backend to dplyr for Microsoft Machine Learning Server/Microsoft R Server’s Xdf file format, but has now become a broader suite of tools to ease working with Xdf files.

This update to dplyrXdf brings the following new features:

  • Support for the new tidyeval framework that powers the current release of dplyr
  • Support for Spark and Hadoop clusters, including integration with the sparklyr package to process Hive tables in Spark
  • Integration with dplyr to process SQL Server tables in-database
  • Simplified handling of parallel processing for grouped data
  • Several utility functions for Xdf and file management
  • Workarounds for various glitches and unexpected behaviour in MRS and dplyr

Spark, Hadoop and HDFS

New in version 1.0.0 of dplyrXdf is support for Xdf files and datasets stored in HDFS in a Hadoop or Spark cluster. Most verbs and pipelines behave the same way, whether the computations are taking place in your R session itself, or in-cluster (except that they should be much more scalable in the latter case). Similarly, dplyrXdf can handle both the scenarios where your R session is taking place on the cluster edge node, or on a remote client.

For example, here is some sample code where we extract a table from Hive, then create a pipeline to process it in the cluster:

rxSparkConnect()
sampleHiv <- RxHiveData(table="hivesampletable")

# this will create the composite Xdf 'samplehivetable'
sampleXdf <- as_xdf(sampleHiv)

sampleXdf %>%
    filter(deviceplatform == "Android") %>%
    group_by(devicemake) %>%
    summarise(n=n()) %>%
    arrange(desc(n)) %>%
    head()
#>     devicemake     n
#> 1      Samsung 16244
#> 2           LG  7950
#> 3          HTC  2242
#> 4      Unknown  2133
#> 5     Motorola  1524

If you are logged into the edge node, dplyrXdf also has the ability to call sparklyr to process Hive tables in Spark. This can be more efficient than converting the data to Xdf format, since less I/O is involved. To run the above pipeline with sparklyr, we simply omit the step of creating an Xdf file:

sampleHiv %>%
    filter(deviceplatform == "Android") %>%
    group_by(devicemake) %>%
    summarise(n=n()) %>%
    arrange(desc(n))
#> # Source:     lazy query [?? x 2]
#> # Database:   spark_connection
#> # Ordered by: desc(n)
#>     devicemake     n
#>           
#> 1      Samsung 16244
#> 2           LG  7950
#> 3          HTC  2242
#> 4      Unknown  2133
#> 5     Motorola  1524
#> # ... with more rows

For more information about Spark and Hadoop support, see the HDFS vignette and the Sparklyr website.

SQL database support

One of the key strengths of dplyr is its ability to interoperate with SQL databases. Given a database table as input, dplyr can translate the verbs in a pipeline into a SQL query which is then execute in the database. For large tables, this can often be much more efficient than importing the data and running them locally. dplyrXdf can take advantage of this with an MRS data source that is a table in a SQL database, including (but not limited to) Microsoft SQL Server: rather than importing the data to Xdf, the data source is converted to a dplyr tbl and passed to the database for processing.

# copy the flights dataset to SQL Server
flightsSql <- RxSqlServerData("flights", connectionString=connStr)
flightsHd <- copy_to(flightsSql, nycflights13::flights)

# this is run inside SQL Server by dplyr
flightsQry <- flightsSql %>%
    filter(month > 6) %>%
    group_by(carrier) %>%
    summarise(avg_delay=mean(arr_delay))

flightsQry
#> # Source:   lazy query [?? x 2]
#> # Database: Microsoft SQL Server
#> #   13.00.4202[dbo@DESKTOP-TBHQGUH/sqlDemoLocal]
#>   carrier avg_delay
#>          
#> 1 "9E"        5.37 
#> 2 AA        - 0.743
#> 3 AS        -16.9  
#> 4 B6          8.53 
#> 5 DL          1.55 
#> # ... with more rows

For more information about working with SQL databases including SQL Server, see the dplyrXdf SQL vignette and the dplyr database vignette.

Parallel processing and grouped data

Even without a Hadoop or Spark cluster, dplyrXdf makes it easy to parallelise the handling of groups. To do this, it takes advantage of Microsoft R Server’s distributed compute contexts: for example, if you set the compute context to “localpar”, grouped transformations will be done in parallel on a local cluster of R processes. The cluster will be shut down automatically when the transformation is complete.

More broadly, you can create a custom backend and tell dplyrXdf to use it by setting the compute context to “dopar”. This allows you a great deal of flexibility and scalability, for example by creating a cluster of multiple machines (as opposed to multiple cores on a single machine). Even if you do not have the physical machines, packages like AzureDSVM and doAzureParallel allow you to deploy clusters of VMs in the cloud, and then shut them down again. For more information, see the “Parallel processing of grouped data” section of the Using dplyrXdf vignette.

Data and file management

New in dplyrXdf 1.0.0 is a suite of functions to simplify managing Xdf files and data sources:

  • HDFS file management: upload and download files with hdfs_file_upload and hdfs_file_download; copy/move/delete files with hdfs_file_copy, hdfs_file_move, hdfs_file_remove; list files with hdfs_dir; and more
  • Xdf data management: upload and download datasets with copy_to, collect and compute; import/convert to Xdf with as_xdf; copy/move/delete Xdf data sources with copy_xdf, move_xdf and delete_xdf; and more
  • Other utilities: run a block of code in the local compute context with local_exec; convert an Xdf file to a data frame with as.data.frame; extract columns from an Xdf file with methods for [, [[ and pull

Obtaining dplyr and dplyrXdf

dplyrXdf 1.0.0 is available from GitHub. It requires Microsoft R Server 8.0 or higher, and dplyr 0.7 or higher. Note that dplyr 0.7 will not be in the MRAN snapshot that is your default repo, unless you are using the recently-released MRS 9.2; you can install it, and its dependencies, from CRAN. If you want to use the SQL Server and sparklyr integration facility, you should install the odbc, dbplyr and sparklyr packages as well.

install_packages(c("dplyr", "dbplyr", "odbc", "sparklyr"),
                 repos="https://cloud.r-project.org")
devtools::install_github("RevolutionAnalytics/dplyrXdf")

If you run into any bugs, or if you have any feedback, you can email me or log an issue at the Github repo.

Source by analyticsweekpick

40 thoughts on “Announcing dplyrXdf 1.0”

  1. Продажи с помощью Pinterest http://1541.ru на Etsy, amazon, ebay, shopify дают Заказчикам заработки от 7 000 до 100 000 USD за месяц в зависимости от вида товара. Приоритет handmade.Facebook, instagram,google ads – отстой по сравнению c пинтерестом в 99%

  2. Greetings! I know this is kinda off topic but I’d figured
    I’d ask. Would you be interested in trading
    links or maybe guest writing a blog article or vice-versa?
    My site addresses a lot of the same subjects as yours and I think we could greatly benefit from each other.
    If you might be interested feel free to shoot me
    an email. I look forward to hearing from you!
    Superb blog by the way!

  3. Pędy zaś krytyka przygotowań
    Dzieła podyplomowe z terenu „Rachuba własności” dopieszczają wychowanków do rozumowego dowodzenia nieruchomościami, w współczesnym przede wszelakim do skonstatowania ich liczby. Wykonanie studiów podyplomowych z przekroju „Taksacja posiadłości” wypracowuje do aktywności w strukturach rad oficjalnej i komunalnej, agencjach awansu, agendach inercji, plakietkach konsultingowych oraz konsultatywnych plus do mówienia jednostkowych korporacji, tudzież czasami do oceny posesje.

    Mądrość: W oprawach rozwiązywanych studiów podyplomowych z zasięgu „Symulacja majętności” wychowanek osiąga mądrość prawą, produktywną także technologiczną bezwarunkową do weryfikacje własności. Roztropność rzeczona odnawiana jest o sprawności wielostronne z limitu poradnictwa na bazarze parcele, pośrednictwa w handlu parcelami, i plus przewodzenia majętnościami.
    Wprawie: Absolwent opracowań podyplomowych spośród progu „Rachuba inercje” zdoła odróżnić los kodeksowy także techniczny parceli, spełnić analizę sektorze działek dla konieczności kalkulacji, wyprodukować doboru zasadniczego stanowiska, technologie a technologie ewaluacji, opracować certyfikat z kwalifikacje tzn. operat obliczeniowy.
    Postawy/kompetencje: Pozy i fachowości zdobyte poprzez absolwentów studiów podyplomowych spośród działu „Taksacja inercje” śmieją na sporządzanie akcje z horyzontu kwalifikacji posesji.
    Po zakończeniu studiów podyplomowych z zasięgu „Ewaluacja nieruchomości” wychowanek wytwarza świadectwo dokończenia dzieł podyplomowych.

    Harmonogram atelier podyplomowych z przekroju „Kwalifikacja własności” kończy wymogi najmniej inżynieryjnego zatwierdzonego w Prawie Ministra Bazy i Toku z dzionka 12 czerwca 2014 r. w hecy niewyczuwalnych przymusów rytmicznych dla studiów podyplomowych w limicie kwalifikacje posesje (poz. 826).

    Adresaci
    Omówienia podyplomowe z progu „Kwalifikacja posesje” przewodzone są do bab spostrzegawczych zyskaniem obywatelskich uzasadnień w zarobku zawodowcy materialnego, kiedy jednocześnie do obecnych, jacy raczą nasilić własną doktrynę spośród odcinka jarmarku posesje plus zrównoważonych atrybutów spojonych z ceną posesje zaś technologiami jej ewaluacji. Atelier podyplomowe z terenu „Taksacja posiadłości” poświęcone są podobnie dla asystentów banków, ludzi placówek publicznych, spółdzielni mieszkaniowych, rad domowych, podmiotów materialnych w których aktywa nieruchomościowe sugerują na cenę subiektu.

    http://hideawaybeachresort.com/

  4. Продажи с помощью Pinterest http://1541.ru на Etsy, amazon, ebay, shopify дают Заказчикам заработки от 7 000 до 100 000 USD за месяц в зависимости от вида товара. Приоритет handmade.Facebook, instagram,google ads – отстой по сравнению c пинтерестом в 99%

  5. Заказать seo поисковую оптимизацию сайта, Заказать услуги по продвижению сайта По всем возникшим вопросам Вы можете обратиться в скайп логин pokras7777Раскрутка сайта под ключ
    .Так же собираем базы Обратесь всегда будем рабы вам помочь

  6. Хорошего дня.
    Посоветуйте отличную онлайн-типографию для печати журналов
    Могу посоветовать хорошую типографию, качество, цены и скорость у них отличное,
    но они размещаются в Красноярске, а мне нужно в Казани.
    Это печать каталогов и брошюр https://kraft-pt.ru/products/broshjury

  7. Oh my goodness! Impressive article dude! Thank you, However
    I am going through issues with your RSS. I don’t know the reason why I can’t subscribe to it.
    Is there anybody having identical RSS problems?
    Anyone that knows the answer can you kindly respond?
    Thanks!! https://idinsight.com/

  8. hkship has stopped working skidrow fix you
    windows 10 explorer crash fix
    agent blizzard file switcher
    autorun virus removal free
    excluding dllhost from data execution prevention tab

    washington limited partnerships
    quick starter quick starter samsung mobile
    svchost memory windows 7 fix errors
    sony ericsson w810i pc suite
    application error faulting application name w3wp

    msmpeng high cpu usage fix free
    fileice er 2014 v5.0 beta version
    warcraft iii mods by k-4-in
    geisinger lewistown hospital lewistown pa
    rpg 2000 rtp

    http://ebook-to-pdf.online/

Leave a Reply

Your email address will not be published. Required fields are marked *