小编Man*_*esh的帖子

Apache ZooKeeper WEB-UI

是否有任何Web界面来检查zookeeper中存在的数据(或树)?

CLI很难获得树和数据的完整画面.

谢谢.

hadoop ambari apache-zookeeper

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

Hive-Varchar vs String,如果存储格式为Parquet文件格式,是否有任何优势

我有一个HIVE表,该表将保存数十亿条记录,它是一个时间序列数据,因此分区是每分钟一次。每分钟我们将有大约一百万条记录。

我表中的字段很少,VIN编号(17个字符),状态(2个字符)...等等

所以我的问题是在表创建期间,如果我选择使用Varchar(X)vs String,是否存在任何存储或性能问题,

varchar的一些限制是 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-string

  1. 如果我们提供的字符超过“ x”个,它将无提示地截断,因此将其保留为字符串将是将来的证明。

    1. 非通用UDF不能直接使用varchar类型作为输入参数或返回值。可以改为创建字符串UDF,并将varchar值转换为字符串并传递给UDF。要直接使用varchar参数或返回varchar值,请创建GenericUDF。

    2. 如果它们依赖于基于反射的方法来检索类型信息,则可能存在不支持varchar的其他上下文。这包括一些SerDe实现。

就存储和性能而言,我需要使用字符串而不是varchar付出的成本是多少?

hive hql hcatalog parquet

5
推荐指数
2
解决办法
7129
查看次数

如何使用from_json和schema作为字符串(即JSON编码的模式)?

我正在从Kafka读取一个流,并将Kafka(即JSON)中的值转换为Structure.

from_json有一个采用类型模式的变体String,但我找不到样本.请告知以下代码中的错误.

错误

Exception in thread "main" org.apache.spark.sql.catalyst.parser.ParseException: 
extraneous input '(' expecting {'SELECT', 'FROM', 'ADD', 'AS', 'ALL', 'DISTINCT',

== SQL ==
STRUCT ( `firstName`: STRING, `lastName`: STRING, `email`: STRING, `addresses`: ARRAY ( STRUCT ( `city`: STRING, `state`: STRING, `zip`: STRING )  )  ) 
-------^^^

at org.apache.spark.sql.catalyst.parser.ParseException.withCommand(ParseDriver.scala:217)
Run Code Online (Sandbox Code Playgroud)

程序

public static void main(String[] args) throws AnalysisException {
    String master = "local[*]";
    String brokers = "quickstart:9092";
    String topics = "simple_topic_6";

    SparkSession sparkSession = SparkSession
            .builder().appName(EmployeeSchemaLoader.class.getName())
            .master(master).getOrCreate();

   String employeeSchema = "STRUCT …
Run Code Online (Sandbox Code Playgroud)

apache-spark apache-spark-sql spark-structured-streaming

5
推荐指数
1
解决办法
8309
查看次数

在 Athena 中分解数组

我在 athena 中有一个简单的表,它有一系列事件。我想编写一个简单的选择语句,以便数组中的每个事件成为一行。

我尝试过爆炸、变形,但没有成功。我已经在 Spark 和 Hive 中成功完成了。但这雅典娜却在欺骗我。请指教

DROP TABLE bi_data_lake.royalty_v4;
CREATE external TABLE bi_data_lake.royalty_v4 (
   KAFKA_ID string,
   KAFKA_TS string,
   deviceUser struct< deviceName:string, devicePlatform:string >,
   consumeReportingEvents array<
                                struct<
                                        consumeEvent: string,
                                        consumeEventAction: string,
                                        entryDateTime: string
                                      >
                               >
   )
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION 's3://XXXXXXXXXXX';
Run Code Online (Sandbox Code Playgroud)

查询哪个不起作用

select kafka_id, kafka_ts,deviceuser, 
transform( consumereportingevents, consumereportingevent -> consumereportingevent.consumeevent) as cre
from bi_data_lake.royalty_v4 
where kafka_id = 'events-consumption-0-490565';
Run Code Online (Sandbox Code Playgroud)

不支持横向视图分解(consumereportingevents)作为consumereportingevent

回答问题使用unnset

找到了我的问题的答案

WITH samples AS (
 select kafka_id, kafka_ts,deviceuser, consumereportingevent, consumereportingeventPos
 from bi_data_lake.royalty_v4 
 cross join unnest(consumereportingevents)  WITH ORDINALITY AS …
Run Code Online (Sandbox Code Playgroud)

amazon-dynamodb presto amazon-athena

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

Apache NiFi 仅从 GetFile 中提取文件名

下面是一个简单的 NiFi 流程,它监视文件夹中的文件并将其复制到不同的文件夹。它工作正常,但我正在寻找一个处理器,它只提取文件名并将文件名写入文本文件

我尝试了 ExtractText 处理器,但无法弄清楚如何将其配置为只读文件名。任何建议都受到高度赞赏。

在此处输入图片说明

apache-nifi

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

'builtin_function_or_method' 列出

我理解 Python 是一种动态语言的事实,但下面的代码让我很困扰。

我有下面的简单程序,它有一些帮助函数来包装命令执行。

EventLoaderToVerticaHelper 是一个有两种方法的辅助类,所以当我调用“get_filenames_from_hdfs_with_filter”时,它应该抛出一个错误或返回一个字符串列表。

class EventLoaderToVerticaHelper:
    def __init__(self):
        pass

    @staticmethod
    def execute_command(cmd):
        p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        error_lines = p.stderr.readlines()
        if len(error_lines) > 0:
            raise error_lines
        return p.stdout.readlines

    @staticmethod
    def get_filenames_from_hdfs_with_filter(folder, filetype):
        cmd = "hdfs dfs -ls {0}/*.{1} |  awk '{print $8}'".replace("{0}", folder).replace("{1}", filetype)
        return EventLoaderToVerticaHelper.execute_command(cmd) 
Run Code Online (Sandbox Code Playgroud)

下面的代码使用了上面的助手,

from src.EventLoaderToVerticaHelper import EventLoaderToVerticaHelper
if __name__ == '__main__':
     filelist = EventLoaderToVerticaHelper.get_filenames_from_hdfs_with_filter("/user/cloudera/testfiles", "csv")
     for s in filelist:
        print s
Run Code Online (Sandbox Code Playgroud)

当我运行上述程序时,出现以下错误。我确定返回类型如果 List[Str]

Traceback (most recent call last):
  File "/home/cloudera/PycharmProjects/vertical-event-loader/src/EventLoaderToVertica.py", line 29, in …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 python-3.x

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

Spark SQL删除空格

我有一个简单的Spark程序,它读取JSON文件并发出CSV文件.在JSON数据中,值包含前导和尾随空格,当我发出CSV时,前导和尾随空格都消失了.有没有办法可以保留空间.我尝试了很多选项,如ignoreTrailingWhiteSpace,ignoreLeadingWhiteSpace,但没有运气

input.json

{"key" : "k1", "value1": "Good String", "value2": "Good String"}
{"key" : "k1", "value1": "With Spaces      ", "value2": "With Spaces      "}
{"key" : "k1", "value1": "with tab\t", "value2": "with tab\t"}
Run Code Online (Sandbox Code Playgroud)

output.csv

_corrupt_record,key,value1,value2
,k1,Good String,Good String
,k1,With Spaces,With Spaces
,k1,with tab,with tab
Run Code Online (Sandbox Code Playgroud)

expected.csv

_corrupt_record,key,value1,value2
,k1,Good String,Good String
,k1,With Spaces      ,With Spaces      
,k1,with tab\t,with tab\t
Run Code Online (Sandbox Code Playgroud)

我的代码:

public static void main(String[] args) {
    SparkSession sparkSession = SparkSession
            .builder()
            .appName(TestSpark.class.getName())
            .master("local[1]").getOrCreate();

    SparkContext context = sparkSession.sparkContext();
    context.setLogLevel("ERROR");
    SQLContext sqlCtx = sparkSession.sqlContext();
    System.out.println("Spark context established"); …
Run Code Online (Sandbox Code Playgroud)

apache-spark spark-streaming apache-spark-sql spark-dataframe apache-spark-mllib

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