集成hadoop、revo scaleR和hive

集成hadoop、revo scaleR和hive,r,hadoop,hive,revolution-r,R,Hadoop,Hive,Revolution R,我需要将配置单元表中的数据提取到csv文件中,并在RevoScaleR中使用它。 目前,我们从配置单元中提取数据并手动将其放入一个文件中,并在unix文件系统中使用它进行临时分析,但是,要求将结果直接重新定向到hdfs位置,并从那里使用RevoScaleR 我该怎么做?或者我需要什么样的连接来建立此连接。如果我正确理解您的问题,您可以使用RevoScaleR ODBC连接来导入配置单元表并从中进行进一步分析 下面是使用Hortonworks提供的ODBC驱动程序的示例: OdbcConnStri

我需要将配置单元表中的数据提取到csv文件中,并在RevoScaleR中使用它。 目前,我们从配置单元中提取数据并手动将其放入一个文件中,并在unix文件系统中使用它进行临时分析,但是,要求将结果直接重新定向到hdfs位置,并从那里使用RevoScaleR


我该怎么做?或者我需要什么样的连接来建立此连接。

如果我正确理解您的问题,您可以使用RevoScaleR ODBC连接来导入配置单元表并从中进行进一步分析

下面是使用Hortonworks提供的ODBC驱动程序的示例:

OdbcConnString <- "DSN=Sample Hortonworks Hive DSN"

odbcDS <- RxOdbcData(sqlQuery = "SELECT * FROM airline",
                                connectionString=OdbcConnString,
                                stringsAsFactors=TRUE, 
                                useFastRead = TRUE,
                                rowsPerRead=150000)

xdfFile <- "airlineHWS.xdf"

if(file.exists(xdfFile)) file.remove(xdfFile)                       

Flights<-rxImport(odbcDS, outFile=xdfFile,overwrite=TRUE)

rxGetInfo(data="airlineHWS.xdf", getVarInfo=TRUE,numRows = 10)

OdbcConnString陈伟的方法还可以,但只有一个问题。数据作为odbcDS对象中的数据帧临时存储在内存中。如果我们在蜂箱里有一张巨大的桌子,那么我们就完蛋了

我建议在配置单元中使用外部表,然后在revolution r中直接使用后端数据,从而将所有内容都保存在磁盘上

在这些方面:

  • 以文本文件(csv、tab等)格式从现有配置单元表创建外部表

    创建外部表ext_表

    就像你原来的表格名称一样

    以“,”结尾的行格式分隔字段

    位置'/your/hdfs/LOCATION'

    在这里,我们创建的外部表存储为hdfs中的csv文件

  • 接下来,使用insert OVERRIDE命令将原始表复制到外部表

    插入覆盖表格外部表格从原始表格名称中选择*

    如果要检查hdfs类型上的后端数据:

    hadoop fs-ls/your/hdfs/location/

    我们可以看到存储在该位置的零件文件。去吧,给他们打个猫,再确认一次

  • 现在我们可以使用RxTextData函数从上述步骤读取数据,如下所示


    配置单元数据查看在哪里可以找到要放入OdbcConnString的正确字符串?它是如何工作的?