标签: hive

将 Hive 行对象转换为整数 Spark

我正在尝试将配置单元列的输出转换为键值对。

sqlContext = HiveContext(sc)
id1 = sqlContext.sql("select instance_id from temp_table")
pairs1 = id1.map(lambda s: (int(s), 'Configuration'))
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

TypeError: int() argument must be a string or a number, not 'Row'
Run Code Online (Sandbox Code Playgroud)

我不确定如何将 Hive Row 对象类型转换为整数,以便我可以对其应用映射函数

例如, id1 是一个数据框,当我对其应用collect() 时,它会返回

[Row(_c0=12616821)]
Run Code Online (Sandbox Code Playgroud)

我需要从行对象中提取值。请告诉我是否有与此问题相关的解决方案

python hive apache-spark apache-spark-sql pyspark

0
推荐指数
1
解决办法
2919
查看次数

0
推荐指数
1
解决办法
1847
查看次数

Beeline无法使用NOSASL身份验证模式连接HiveServe2(旧客户端)

这个问题在这里很常见,有几种不同的风格。在这种情况下,我设置了一个没有身份验证的 HiveServer2 ( NOSASL ),它在 Python 中工作,我在其中使用 Impyla 库进行连接。当我使用直线连接时,无法获得有效的连接。

直线结束于:

 beeline> !connect jdbc:hive2://127.0.0.1:10000/default/hive
 Error: Could not open client transport with JDBC Uri: jdbc:hive2://127.0.0.1:10000/default/hive: null (state=08S01,code=0)
Run Code Online (Sandbox Code Playgroud)

在 HiveServer2 日志中我有:

17/11/16 20:59:35 [HiveServer2-Handler-Pool: Thread-34]: ERROR server.TThreadPoolServer: Thrift error occurred during processing of message.
org.apache.thrift.protocol.TProtocolException: Missing version in readMessageBegin, old client?
    at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:228)
    at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27)
    at org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:56)
    at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:285)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

authentication hadoop hive beeline

0
推荐指数
1
解决办法
3240
查看次数

Hive 中的 Lead 函数

我正在尝试检索特定“name2”之后的下一个“name1”。例如,“name2”中“complete2”之后的下一个“name1”是“init3”。这是我使用的查询,但它返回 null。

    date_time                    name1        name2           
    2017-11-23 00:09:46          init1        complete1
    2017-11-23 00:09:48          init2        complete2
    2017-11-23 00:09:50          init3        complete3


   select date_time,name1,name2,
   lead(name1,1) over (order by date_time) as next_word
   from tab1
   where date_time between "2017-11-23 00:00:00" and "2017-11-23 23:59:59" 
   and name2 like "%complete2%";
Run Code Online (Sandbox Code Playgroud)

hive lead

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

查询HIVE元数据

我需要查询下表并查看我的 Apache HIVE 集群中的信息:

每行需要包含以下内容:

表模式

表名

表说明

列名称

列数据类型

柱长

立柱精度

柱标尺

空或非空

主要关键指标

这可以很容易地从大多数 RDBMS(元数据表/视图)中查询,但我很难找到有关 HIVE 中等效元数据表/视图的大量信息。

请帮忙 :)

hadoop hive hiveql hortonworks-data-platform hadoop2

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

如何在从 HIVE 表中选择时替换换行符

我在 HIVE 中有一个 AVRO 格式的表。该表中的一列(字符串数据类型)包含带有换行符的数据,因此当我选择(使用 beeline 或 pyspark)时,我会得到多行。我确实在选择中尝试了选项 REGEXP_REPLACE(col1,"\n","") ,但它仍然返回多行。

当我复制并粘贴到文本编辑器中时,col1 的值如下所示:

NY - Enjoy holidays or Enjoy leaves.  
Silver 2000 plan
Silver 2000 plan CSR 1
Silver 2000 plan CSR 2
Gold 600 plan
Enjoy, holidays then leaves for ER, UC and old age only.  Primary holidays not subject to Enjoy.
Run Code Online (Sandbox Code Playgroud)

这里有什么替代方案吗?

hive apache-spark-sql

0
推荐指数
1
解决办法
9602
查看次数

org.apache.hadoop.hive.ql.io.orc.OrcStruct 无法转换为 org.apache.hadoop.io.BinaryComparable

        at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:563)
        at org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:83)
        ... 17 more
Caused by: java.lang.ClassCastException: org.apache.hadoop.hive.ql.io.orc.OrcStruct cannot be cast to org.apache.hadoop.io.BinaryComparable
        at org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.doDeserialize(LazySimpleSerDe.java:166)
        at org.apache.hadoop.hive.serde2.AbstractEncodingAwareSerDe.deserialize(AbstractEncodingAwareSerDe.java:71)
        at org.apache.hadoop.hive.ql.exec.MapOperator$MapOpCtx.readRow(MapOperator.java:149)
        at org.apache.hadoop.hive.ql.exec.MapOperator$MapOpCtx.access$200(MapOperator.java:113)
        at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:554)
        ... 18 more

2019-09-19 11:50:29,860 [INFO] [TezChild] |task.TezTaskRunner|: Encounted an error while executing task: attempt_1568591126479_21189_1_01_000000_2
java.lang.RuntimeException: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing writable {140725, 222117, 11A2, YYYYYYNN            , F, R, SeLect Advntg RX OB, N, MATERNITY  , I, 0.00, 04, N, N, Y, Y, Y, N, 003, A, B,  ,  ,  ,  , …
Run Code Online (Sandbox Code Playgroud)

hadoop hive apache-tez orc

0
推荐指数
1
解决办法
4661
查看次数

与 Levenshtein 距离的模糊连接

我有一个包含用户名(约 1 000 行)的表,称为“潜在用户”,另一个表称为“实际用户”(约 1000 万行)。所有记录都完全由 [az] 字符组成,没有空格。此外,我知道实际用户表中没有潜在用户。

我希望能够根据 Levenshtein 距离,计算 possible_users 中的每一行,actual_users 中最接近的记录是什么。例如:

| potential_users|
|----------------|
| user1          |
| kajd           |
| bbbbb          |
Run Code Online (Sandbox Code Playgroud)

| actual_users |
|--------------|
| kaj          |
| bbbbbbb      |
| user         |
Run Code Online (Sandbox Code Playgroud)

将返回:

| potential_users | actual_users | levenshtein_distance |
|-----------------|--------------|----------------------|
| user1           | user         | 1                    |
| kajd            | kaj          | 1                    |
| bbbbb           | bbbbbbb      | 2                    |
Run Code Online (Sandbox Code Playgroud)

如果表很短,我可以创建一个交叉联接,计算潜在用户中的每条记录与实际用户中的编辑距离,然后返回具有最低值的记录。然而,在我的例子中,这将创建一个 1 000 x 10 000 000 行的中间表,这有点不切实际。

是否有更干净的方法通过创建交叉连接来执行此类操作?

sql hive presto apache-spark-sql trino

0
推荐指数
1
解决办法
2063
查看次数

如何在 PySpark 中分解嵌套数据框并将其进一步存储到 hive

我面临一个特定的问题,其中我的 JSON 结构如下:-

{A:value,
B:value,
C:Array<Struct<A1:value,B1:value, C1:Array<struct<A2:value,B2:value>>>>
}
Run Code Online (Sandbox Code Playgroud)

我希望它以以下形式爆炸:-

{
A:value,
B:value,
A1:value,
B1:value,
A2:value,
B2:value
}
Run Code Online (Sandbox Code Playgroud)

我为此使用了 pyspark 数据框,但找不到正确爆炸的方法。任何帮助表示赞赏。

json hive dataframe apache-spark pyspark

-1
推荐指数
1
解决办法
5482
查看次数

黑斑羚 vs 蜂巢。Impala 如何绕过 MapReduce?

Impala 如何在查询处理中实现比 Hive 更低的延迟?

我正在浏览http://impala.apache.org/overview.html,其中说明:

为了避免延迟,Impala 绕过 MapReduce,通过专门的分布式查询引擎直接访问数据,该引擎与商业并行 RDBMS 中的查询引擎非常相似。结果是性能比 Hive 快几个数量级,具体取决于查询和配置的类型。

Impala 如何在没有 MapReduce 的情况下获取数据(如在 Hive 中)?

能不能说Impala更接近HBase,应该和HBase比,而不是和Hive比?

编辑:

或者我们可以说,像经典一样,Hive 位于 MapReduce 之上并且确实需要更少的内存来工作,而 Impala 在内存中完成所有工作,因此它需要更多的内存来工作,因为数据已经被缓存在内存中并根据请求采取行动?

hadoop hive impala

-1
推荐指数
1
解决办法
526
查看次数

任何人从cloudera实施或研究黑斑羚?

Hadoop技术对我来说非常混乱(Hbase,flume,oozie,scoop,zookeeper,Hive,hue,Bigtop,pig)以及现在它的黑斑羚.有人可以定义它们是如何集成的吗?(我是一个信息开发人员,对Java的知识很少)至少是数据软件的外壳!

hadoop hbase hive cloudera

-2
推荐指数
1
解决办法
814
查看次数

为什么Hbase称为架构更少?

我是HBase的新手.实际上HBase称为无模式数据存储.但是要在特定列中存储值,我们应该指定表,然后是列族,然后是列名,然后是{Actual value}.

所以我很困惑,要将值放入hbase表中,为什么我们需要指定列名.

HBase是无模式的吗?

请澄清我的疑问?提前致谢.

hadoop hbase hive

-2
推荐指数
1
解决办法
1853
查看次数

Apache Cassandra VS Spark VS Hive VS Storm

我个别理解每个是什么,但我很难在用例的差异上解决问题.

可以简要描述一下每个是什么,以及一个用例何时可以选择其他人的例子.

我的理解是Spark和Cassandra甚至没有可比性,但我的同事认为它们是同一物种.

作为大数据的新手,如果这是一个严格的意见/首选基础,我会提前道歉.如果有,请告诉我,我会把问题记下来.

hadoop hive cassandra apache-spark apache-storm

-2
推荐指数
1
解决办法
1321
查看次数