标签: bigdata

Apache Pig和Apache Hive有什么区别?

Pig和Hive有什么区别?我发现两者都具有相同的功能意义,因为它们用于做同样的工作.唯一的事情就是两种情况都有所不同.那么何时使用和哪种技术?两者的规格是否明确显示了两者在适用性和性能方面的差异?

hadoop hive apache-pig bigdata

18
推荐指数
2
解决办法
2万
查看次数

Cassandra中的聚类键

在给定的物理节点上,给定分区键的行按照聚类键引起的顺序存储,使得在该聚类顺序中检索行特别有效.http://cassandra.apache.org/doc/cql3/CQL.html#createTableStmt群集密钥会导致什么样的排序?

bigdata cassandra nosql

18
推荐指数
1
解决办法
1万
查看次数

如何快速将数据从R导出到SQL Server

由于非最小负载,标准RODBC软件包的sqlSave功能即使作为单个INSERT语句(参数fast = TRUE)也非常慢,因此对于大量数据而言非常慢.如何以最少的日志记录将数据写入我的SQL服务器,以便更快地写入?

目前尝试:

toSQL = data.frame(...);
sqlSave(channel,toSQL,tablename="Table1",rownames=FALSE,colnames=FALSE,safer=FALSE,fast=TRUE);
Run Code Online (Sandbox Code Playgroud)

sql sql-server r bigdata

18
推荐指数
1
解决办法
3万
查看次数

如何将csv文件转换为镶木地板

我是BigData的新手.我需要将csv/txt文件转换为Parquet格式.我搜索了很多,但找不到任何直接的方法.有没有办法实现这一目标?

java bigdata parquet

18
推荐指数
7
解决办法
6万
查看次数

spark中的哪个函数用于按键组合两个RDD

假设我有以下两个RDD,具有以下键对值.

rdd1 = [ (key1, [value1, value2]), (key2, [value3, value4]) ]
Run Code Online (Sandbox Code Playgroud)

rdd2 = [ (key1, [value5, value6]), (key2, [value7]) ]
Run Code Online (Sandbox Code Playgroud)

现在,我想通过键值加入它们,所以例如我想返回以下内容

ret = [ (key1, [value1, value2, value5, value6]), (key2, [value3, value4, value7]) ] 
Run Code Online (Sandbox Code Playgroud)

我如何使用Python或Scala在spark中执行此操作?一种方法是使用join,但join会在元组内部创建一个元组.但我希望每个键值对只有一个元组.

python scala bigdata apache-spark rdd

18
推荐指数
2
解决办法
3万
查看次数

如何将r数据帧转换为h2o对象

我是R和H2O的新手,我试图找到一种方法将r数据帧转换为h2o对象.我花了一些时间研究如何做到这一点,没有运气.其他方式是可能的,并记录如下.

prosPath = system.file("extdata", "prostate.csv", package="h2o")
prostate.hex = h2o.importFile(localH2O, path = prosPath)
prostate.data.frame <- as.data.frame(prostate.hex)
Run Code Online (Sandbox Code Playgroud)

但我想要的是完全相反的.我想将r"prostate.data.frame"数据对象转换为名为"prostate.hex"的h2o对象.提前致谢.

r machine-learning bigdata dataframe h2o

18
推荐指数
3
解决办法
2万
查看次数

Flink Streaming:如何根据数据将一个数据流输出到不同的输出?

在Apache Flink中,我有一组元组.让我们假设一个非常简单Tuple1<String>.元组可以在其值字段中具有任意值(例如,"P1","P2"等).可能值的集合是有限的,但我事先并不知道全集(所以可能有'P362').我想根据元组内部的值将该元组写入某个输出位置.所以我希望有以下文件结构:

  • /output/P1
  • /output/P2

在文档中我只发现了写入我事先知道的位置的可能性(例如stream.writeCsv("/output/somewhere")),但没有办法让数据的内容决定数据实际结束的位置.

我在文档中读到了关于输出拆分的内容,但这似乎没有提供一种方法将输出重定向到我希望拥有它的方式(或者我只是不明白这是如何工作的).

可以使用Flink API完成,如果是这样,怎么做?如果没有,是否可能有第三方图书馆可以做到这一点,还是我必须自己构建这样的东西?

更新

根据Matthias的建议,我想出了一个筛选接收函数,它确定输出路径,然后在序列化之后将元组写入相应的文件.我把它放在这里作为参考,也许对其他人有用:

public class SiftingSinkFunction<IT> extends RichSinkFunction<IT> {

    private final OutputSelector<IT> outputSelector;
    private final MapFunction<IT, String> serializationFunction;
    private final String basePath;
    Map<String, TextOutputFormat<String>> formats = new HashMap<>();

    /**
     * @param outputSelector        the selector which determines into which output(s) a record is written.
     * @param serializationFunction a function which serializes the record to a string.
     * @param basePath              the base path for writing the records. It will be appended …
Run Code Online (Sandbox Code Playgroud)

java bigdata apache-flink flink-streaming

18
推荐指数
1
解决办法
5293
查看次数

如何使用node.js http服务器从mongodb返回大量行?

我在mongodb中有一个用户数据库,我想通过JSON中的REST接口导出.问题是在最坏的情况下,返回的行数量远远超过200万.

首先我尝试了这个

var mongo = require('mongodb'),
  Server = mongo.Server,
  Db = mongo.Db;
var server = new Server('localhost', 27017, {auto_reconnect: true});
var db = new Db('tracking', server);
var http = require('http');

http.createServer(function (request, response) {
  db.collection('users', function(err, collection) {
    collection.find({}, function(err, cursor){
      cursor.toArray(function(err, items) {
        output = '{"users" : ' + JSON.stringify(items) + '}';

        response.setHeader("Content-Type", "application/json");
        response.end(output);
      });
    });
  });
}).listen(8008);
console.log('Server running at localhost:8008');
Run Code Online (Sandbox Code Playgroud)

内存不足时失败.该示例使用node-mongodb-native驱动程序和基本http包.

致命错误:CALL_AND_RETRY_2分配失败 - 处理内存不足

(请注意,在实际场景中,我使用的参数会根据需要限制结果,但是此示例会查询所有这些最糟糕的情况,无论如何)

数据本身很简单,就像

{"_ id":ObjectId("4f993d1c5656d3320851aadb"),"userid":"80ec39f7-37e2-4b13-b442-6bea57472537","user-agent":"Mozilla/4.0(兼容; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR …

rest http bigdata mongodb node.js

17
推荐指数
3
解决办法
1万
查看次数

如何处理来自不同服务器的多个数据库结果以获取请求

我有云统计(Structured data :: CSV)信息; 我必须向管理员和用户公开.

但是为了可扩展性; 数据收集将由与各个DB连接的多台机器(perf监视器)收集.

现在经理(经理)负责向所有性能监测器多播请求; 收集整体统计数据以满足单个UI请求.

所以问题是:

1)如何根据经理的客户要求对多个监控数据进行排序.每个监视器可以根据客户端请求给出结果; 但仍然如何通过java合并多个机器数据?意味着如何在内存中执行sql聚合/标量(例如,Groupby,orderby,avg)函数对从MGR处的多个聚类中检索到的所有结果.如何在java端实现DB sql聚合/标量功能,任何已知的API?我认为我需要的是在hadoop中减少mapreduce技术的一部分.

2)来自UI的请求(假设来自DB的选择计数(*),其中内存> 1000MB)必须转发到多台机器.现在如何将并行请求发送到单个监视器并仅在响应所有节点时使用?意味着如何等待用户线程直到消耗来自perf监视器的所有响应?如何在MGR上触发单个UI请求的并行REST请求.

3)我是否必须在Mgr和Perf监视器上验证UI用户?

4)你认为这种方法有任何缺点吗?

笔记:

1)我没有使用NoSql,因为数据是结构化的,不需要连接.

2)我没有去node.js因为我是新手,可能需要更多时间来开发它.此外,我没有开发任何单线程最适合的并发关键.这里只完成数据的推送/检索.没有修改发生.

3)我希望每个监视器都有单独的数据库,或者至少有两个具有多个集群的DB实例,以支持更快地访问实时BIG统计数据.

在此输入图像描述

java database architecture scalability bigdata

17
推荐指数
1
解决办法
990
查看次数

如何比较scala中不同的两个数据框和打印列

我们这里有两个数据框:

预期的数据帧:

+------+---------+--------+----------+-------+--------+
|emp_id| emp_city|emp_name| emp_phone|emp_sal|emp_site|
+------+---------+--------+----------+-------+--------+
|     3|  Chennai|  rahman|9848022330|  45000|SanRamon|
|     1|Hyderabad|     ram|9848022338|  50000|      SF|
|     2|Hyderabad|   robin|9848022339|  40000|      LA|
|     4|  sanjose|   romin|9848022331|  45123|SanRamon|
+------+---------+--------+----------+-------+--------+
Run Code Online (Sandbox Code Playgroud)

和实际数据框:

+------+---------+--------+----------+-------+--------+
|emp_id| emp_city|emp_name| emp_phone|emp_sal|emp_site|
+------+---------+--------+----------+-------+--------+
|     3|  Chennai|  rahman|9848022330|  45000|SanRamon|
|     1|Hyderabad|     ram|9848022338|  50000|      SF|
|     2|Hyderabad|   robin|9848022339|  40000|      LA|
|     4|  sanjose|  romino|9848022331|  45123|SanRamon|
+------+---------+--------+----------+-------+--------+
Run Code Online (Sandbox Code Playgroud)

两个数据帧之间的区别现在是:

+------+--------+--------+----------+-------+--------+
|emp_id|emp_city|emp_name| emp_phone|emp_sal|emp_site|
+------+--------+--------+----------+-------+--------+
|     4| sanjose|  romino|9848022331|  45123|SanRamon|
+------+--------+--------+----------+-------+--------+
Run Code Online (Sandbox Code Playgroud)

我们使用的是except函数df1.except(df2),但问题是,它返回的是不同的整行.我们想要的是查看该行中哪些列是不同的(在这种情况下,"romin"和"emp_name"中的"romino"不同).我们遇到了巨大的困难,任何帮助都会很棒.

compare scala bigdata apache-spark spark-dataframe

17
推荐指数
1
解决办法
3万
查看次数