jjzjj

hadoop - 使用Hadoop Map reduce处理和拆分大数据?

我在文本文件中有大量数据(1,000,000行)。每行有128列。现在我正在尝试用这个大数据构建一个kd树。我想使用mapreduce进行计算。针对我的问题的蛮力方法:1)编写一个mapreduce作业来查找每一列的方差并选择方差最高的列2)将(列名,方差值)作为输入编写另一个mapreduce作业将输入数据分成两部分。对于给定的列名,第1部分包含所有值小于输入值的行,第二部分包含大于输入值的所有行。3)对于每个部分重复步骤1和步骤2,继续该过程,直到每个部分剩下500个值。列名称、方差值构成我的树的单个节点。因此,对于高度为10的树,我需要使用蛮力方法运行1024个mapreduce

hadoop - 创建一个使用可以返回列名的 UDF 函数的 hiveQL 查询

我想创建一个HiveUDF函数,该函数根据某些值返回特定的列名,例如retreivecol(age)。如果年龄为20,则返回要在选择查询中使用的列名列表,例如“name,email,fbuserid、friend列表等,如果年龄小于20岁,则单独返回“姓名”。所以我希望我的HIVEQL查询看起来像从User_Data中选择retreivecol(age);上面的查询只打印列的名称,如“name、email、fbuserid、friendslist”等,而不是将它们视为列名称并基于相同的名称进行过滤。感谢任何指针。 最佳答案 我不确定

hadoop - 如何比较一个表中的列名与 impala 中另一个表中的值

第一个是主表,第二个是查找表。我需要将第一个表的列名与第二个表中的值进行比较,如果在第二个表的任何行中找到某个列名,则从第二个表中提取一些字段。有可能在impala中实现吗?Table1source|location|origin----------+----------+-------s1|india|xxxTable2extractedfrom|lct|lkp_value|map_value-------------+----------+---------+---------s1|location|india|india_xs1|origin|xxx|yyyyyy我需要有类似的东

sql - Hive 将无法识别查询中第二个条件中的列名

我运行了以下查询并得到了以下错误。请查看该错误消息提到它认为不存在的列名称(平台)。奇怪。hive-S-e'select*fromdevices.device_app_actionwhereds='20160511'ANDplatform='ios'limit3;'FAILED:SemanticException[Error10004]:Line1:73Invalidtablealiasorcolumnreference'ios':(possiblecolumnnamesare:duid,id,dt,app,platform,app_level,tier1,tier2,tier3,ti

hadoop - HappyBase - 是否有 find_one 或 scan_one 的等价物?

我正在为其制作UI的特定HBase表中的所有行恰好具有相同的列,并且在可预见的将来也会如此。我希望我的html数据可视化应用程序简单地查询单个随机行以记录列名,并将这个列名列表放入一个变量中以在整个程序中引用。我在HappyBase的文档中没有看到任何与find_one或scan_one等价的东西。实现此目标的最佳方法是什么? 最佳答案 这将只获取第一行:row=next(table.scan(limit=1))此外,您可以指定一个过滤字符串以避免检索值,这仅在您的值很大并且您经常执行此查询时才值得。

scala - 从数据框中选择时重命名列名

我有2个数据框:df1和df2,我将它们都加入到id列并将其保存到另一个名为df3的数据框。下面是我正在使用的代码,它按预期工作正常。valdf3=df1.alias("tab1").join(df2.alias("tab2"),Seq("id"),"left_outer").select("tab1.*","tab2.name","tab2.dept","tab2.descr");我想在上述语句中将tab2.descr列重命名为dept_full_description。我知道我可以像下面这样创建一个seqval并使用toDF方法valcolumnsRenamed=Seq("id",

hadoop - Hive - 如何在命令行中显示 Hive 查询结果以及列名

我在Hive工作了一段时间。请注意,我根本不使用Hue。我一直使用Hiveshell,现在我遇到了一个奇怪但有用的问题。每当我们在Hiveshell中执行查询时,我们可以在屏幕上看到相关结果,但我们无法识别与数据对应的列名,除非我们执行“desc格式化表名”或任何其他类似命令并向上滚动/将结果与表结构相匹配。我们很可能一直这样做。出于好奇,我想知道当我们执行诸如“select*fromtable_name”之类的基本查询时,是否有任何方法可以至少将列名与数据一起打印出来? 最佳答案 打开配置单元session后设置此属性hive>s

hadoop - 不能在 Hive 表列名中使用 "."

我正在使用Hive2.1.1并尝试在列名称中使用.创建一个表:CREATETABLE`test_table`(`field.with.dots`string);当我这样做时,我得到:FAILED:ParseExceptionline4:0Failedtorecognizepredicate')'.Failedrule:'[.,:]cannotbeusedincolumnnameincreatetablestatement.'incolumnspecification我一定是做错了什么,因为hivedocumentation说:InHiverelease0.13.0andlater,by

hadoop - Hbase - 如何获取表中的列名?

我有一些包含数百万行但只有几列的HBase表。我想提取每个表的列名并将其存储在一个单独的文件中。做这个的最好方式是什么?谢谢。 最佳答案 这应该将列名称保存在本地(而不是hdfs)的Hbase_table_columns.txt文件中:echo"scan'table_name'"|$HBASE_HOME/bin/hbaseshell|awk-F'=''{print$2}'|awk-F':''{print$1}'>Hbase_table_columns.txt这应该在控制台上保存列名:echo"scan'table_name'"|$H

hadoop - 在 Hive 中执行任何查询时,有什么方法可以获取列名和输出吗?

在Hive中,当我们进行查询时(如:select*fromemployee),我们不会在输出中获得任何列名称(如我们将在RDBMSSQL),我们只获取值。在执行任何查询时,有什么方法可以让列名与输出一起显示吗? 最佳答案 如果我们想在HiveQl中查看表的列名,则应将以下hiveconf属性设置为true。hive>sethive.cli.print.header=true;如果您希望始终看到列名,则在第一行使用上述设置更新$HOME/.hiverc文件。--Hive自动在您的HOME目录中查找名为.hiverc的文件并运行其中包含