这就是我想要做的。
输入数据如下(制表符分隔):
12/01/2018 user1 123.123.222.111 23.3s
12/01/2018 user2 123.123.222.116 21.1s
数据通过Kafka传入,并使用以下代码进行解析。
kafkaStream = KafkaUtils.createStream(ssc, zkQuorum, "spark-streaming-consumer", {topic: 1})
lines = kafkaStream.map(lambda x: x[1])
parsed_log = lines.flatMap(lambda line: line.split(" "))
.map(lambda item: ('key', {
'date': item['date'],
'user': item['user'],
'ip': item['ip'],
'duration': item['duration'],}))
解析后的日志应采用以下格式:
('key', {'date': 12/01/2018, 'user': user1, 'ip': 123.123.222.111, 'duration': 23.3s})
('key', {'date': 12/01/2018, 'user': user2, 'ip': 123.123.222.116, 'duration': 21.1s})
在我的代码中,“ lines”和“ parsed_log”的代码行不起作用。你能让我知道怎么做吗?
答案 0 :(得分:0)
这是解决方案:
#include <stdio.h>
/* Comment / uncomment this to change behaviour */
#define REDIRECT_TEST
#ifdef REDIRECT_TEST
# define my_test(msg) printf("REDIRECTED:%s\n", msg)
#else
# define my_test test
#endif
void test(const char *msg) {
printf("%s\n", msg);
}
void main(void) {
my_test("hello");
}