是否有任何Web界面来检查zookeeper中存在的数据(或树)?
CLI很难获得树和数据的完整画面.
谢谢.
我有一个HIVE表,该表将保存数十亿条记录,它是一个时间序列数据,因此分区是每分钟一次。每分钟我们将有大约一百万条记录。
我表中的字段很少,VIN编号(17个字符),状态(2个字符)...等等
所以我的问题是在表创建期间,如果我选择使用Varchar(X)vs String,是否存在任何存储或性能问题,
varchar的一些限制是 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-string
如果我们提供的字符超过“ x”个,它将无提示地截断,因此将其保留为字符串将是将来的证明。
非通用UDF不能直接使用varchar类型作为输入参数或返回值。可以改为创建字符串UDF,并将varchar值转换为字符串并传递给UDF。要直接使用varchar参数或返回varchar值,请创建GenericUDF。
如果它们依赖于基于反射的方法来检索类型信息,则可能存在不支持varchar的其他上下文。这包括一些SerDe实现。
就存储和性能而言,我需要使用字符串而不是varchar付出的成本是多少?
我正在从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) 我在 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) 下面是一个简单的 NiFi 流程,它监视文件夹中的文件并将其复制到不同的文件夹。它工作正常,但我正在寻找一个处理器,它只提取文件名并将文件名写入文本文件
我尝试了 ExtractText 处理器,但无法弄清楚如何将其配置为只读文件名。任何建议都受到高度赞赏。
我理解 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) 我有一个简单的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
apache-spark ×2
ambari ×1
apache-nifi ×1
hadoop ×1
hcatalog ×1
hive ×1
hql ×1
parquet ×1
presto ×1
python ×1
python-2.7 ×1
python-3.x ×1