我正在尝试根据日期时间字段过滤数据。我的数据样本:
303,0.00001747,4351040,75.9054,"2019-03-08 19:29:18"
Run Code Online (Sandbox Code Playgroud)
这是我初始化spark的方式:
SparkConf conf = new SparkConf().setAppName("app name").setMaster("spark://192.168.1.124:7077");
JavaSparkContext sc = JavaSparkContext.fromSparkContext(SparkContext.getOrCreate(conf));
Run Code Online (Sandbox Code Playgroud)
首先,我将上面的数据读入我的自定义对象中,如下所示:
// Read data from file into custom object
JavaRDD<CurrencyPair> rdd = sc.textFile(System.getProperty("user.dir") + "/data/data.csv", 2).map(
new Function<String, CurrencyPair>() {
public CurrencyPair call(String line) throws Exception {
String[] fields = line.split(","); // Split line from commas
// read each data into custom object
CurrencyPair cp = new CurrencyPair();
cp.setId(Integer.parseInt(fields[0].trim()));
cp.setValue(Double.parseDouble(fields[1].trim()));
cp.setBaseVolume(Double.parseDouble(fields[2].trim()));
cp.setQuoteVolume(Double.parseDouble(fields[3].trim()));
cp.setTimeStamp(new Date(fields[4].trim()));
System.out.println("Date:" + fields[4].trim()); // To see if it will print or not …Run Code Online (Sandbox Code Playgroud) 我尝试使用kafka实现一个简单的生成器使用者示例,并使用以下属性实现:
Properties configProperties = new Properties();
configProperties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"localhost:" + portNumber);
configProperties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,"org.apache.kafka.common.serialization.ByteArraySerializer");
configProperties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,"org.apache.kafka.common.serialization.StringSerializer");
// Belirtilen property ayarlar?na sahip kafka producer olu?turulur
org.apache.kafka.clients.producer.Producer producer = new KafkaProducer(configProperties);
Run Code Online (Sandbox Code Playgroud)
然而,当我尝试完全相同的配置,以及其他一切相同,在另一个项目,这是一个数据可视化软件的插件,我得到这个错误:
.... // Here there is some other stuff but I thing the important one is the below one
Caused by: java.lang.NoClassDefFoundError: org/apache/kafka/clients/producer/Producer
at App.MyControlPanel.<init>(MyControlPanel.java:130)
at App.CytoVisProject.<init>(CytoVisProject.java:29)
... 96 more
Caused by: java.lang.ClassNotFoundException: org.apache.kafka.clients.producer.Producer
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 98 more
Run Code Online (Sandbox Code Playgroud)
在我说它工作的第一个,我使用"mvn clean compile assembly:single",但在第二个我为整个项目创建了一个jar文件.因为可视化软件需要jar文件来安装插件.因为每件事都是一样的(至少我找不到任何区别,我使用相同的代码)我想问题是关于构建项目的方式.这里发生了什么?"mvn clean compile assembly:single"和在IntelliJ中构建jar文件有什么区别?为什么我收到此错误以及如何解决此问题?非常感谢您的帮助!
正如我在第一个答案的最后一个评论中所说,我有一个插件,它已经显示并转换为目标.这里:
<plugin>
<groupId>com.springsource.bundlor</groupId>
<artifactId>com.springsource.bundlor.maven</artifactId>
<version>1.0.0.M2</version>
<configuration> …Run Code Online (Sandbox Code Playgroud) 我有一个名为 mytopic 的主题。该主题有 1 个生产者和 2 个消费者。我需要做的是根据生产者的前缀过滤生产者生成的消息。例如,如果消息以“a”前缀开头,则只有第一个消费者必须接受它。如果它以“b”前缀开头,则只有第二个消费者必须使用它。
我做了很多搜索,我发现过滤来自某个主题的消息,然后过滤后将它们发送到不同的主题。但如上所述,我需要对一个主题进行过滤。我怎样才能在卡夫卡中做到这一点?
我开发了一个数据可视化工具插件。现在我想在里面使用redis。当我在另一个项目(不在我的插件内)中尝试下面的 redis 代码时,它运行良好。
//Connecting to Redis server on localhost
Jedis jedis = new Jedis("localhost");
System.out.println("Connection to server sucessfully");
//check whether server is running or not
System.out.println("Server is running: "+jedis.ping());
Run Code Online (Sandbox Code Playgroud)
但是当我在插件中使用 Jedis 时,我遇到了Caused by: java.lang.NoClassDefFoundError: redis/clients/jedis/Jedis错误Caused by: java.lang.NoClassDefFoundError: redis/clients/jedis/Jedis。为了将我的插件安装到这个数据可视化工具中。我需要创建一个 jar 文件,我这样做了,它运行良好,无需添加 jedit 部分。
我正在使用 IntelliJ Idea,我创建了一个工件并从顶部菜单中的“构建 - 构建工件”选项卡中构建它。我还在 pom.xml 中添加了 jedis jar 文件作为依赖项(这是一个 Maven 项目),我将其添加为项目结构中的库,并从项目结构的工件选项卡中添加了 jedis jar 文件作为提取的目录和库菜单。然后我将 jedis jar 文件添加到我的项目 .classpath 文件中,如下所示:
<classpathentry kind="src" path="src/main/resources/jedis-2.1.0-sources.jar" including="**/*.java"/>
Run Code Online (Sandbox Code Playgroud)
因此,当我打开 jar 文件时,我可以看到“redis/clients/jedis”路径中有 Jedis.java 文件。我的 jar 文件的根路径中还有 jedis jar …
我需要知道,如果我们从具有一些索引(聚集或非聚集,对于这两种情况)的表中删除一些行(我指的是sql server)是否会对索引造成任何损坏?当我们删除行时索引会发生什么?哪一种对性能更好,在处理行后从表中删除行,或者将它们标记为已处理(当我们需要重复使用它们 20 次以上时)。感谢您的回答。
我正在尝试创建自己的malloc函数,但我还没有完成.这是我的代码的相关部分:
mymalloc.h :
#pragma once
#include <stdlib.h>
typedef struct METADATA{
struct METADATA *next;
struct METADATA *prev;
int free;
size_t size;
}METADATA;
METADATA *metadata;
void *mm_malloc(size_t size);
Run Code Online (Sandbox Code Playgroud)
mymalloc.c
#include "mm_alloc.h"
#include "stdlib.h"
#include "stdio.h"
void *mm_malloc(size_t size) {
if(size == 0)
return NULL;
METADATA *tmp;
long address;
if(metadata == NULL){
sbrk(sizeof(tmp));
sbrk(size);
address = sbrk(0);
return (void *)address;
}
}
Run Code Online (Sandbox Code Playgroud)
在那sbrk(sizeof(tmp));部分mymalloc.c,我得到了"Implicit declaration of function sbrk()".我想要做的就是为metadata新区块创建一个位置,并为所需大小创建一个位置.我哪里做错了?
我看到了与我相同的一些问题,但它们与我的问题不一样(至少我能看到的问题)我有下表:
id1 id2 column1 column2 column3 column4 column5 column6
147741 -905306891655 NULL NULL NULL NULL NULL NULL
147741 -905306891655 NULL NULL NULL NULL 2017-01-06 15:14:10.057 NULL
147741 -905306891655 NULL 2017-01-06 16:39:49.057 2017-01-06 16:39:49.057 NULL NULL NULL
147741 -905306891655 2017-01-04 15:09:20.057 NULL NULL 2017-01-06 15:26:14.057 NULL 2017-01-04 17:09:20.057
Run Code Online (Sandbox Code Playgroud)
它只是我表的一部分,在实际表中有许多id1,id2对如上.如您所见,在每列中只有一个非空值.所以我需要做的是,压缩这些列如下:
id1 id2 column1 column2 column3 column4 column5 column6
147741 -905306891655 2017-01-04 15:09:20.057 2017-01-06 16:39:49.057 2017-01-06 16:39:49.057 2017-01-06 15:26:14.057 2017-01-06 15:14:10.057 2017-01-04 17:09:20.057
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我正在尝试将有关我的查询的一些日志数据写入文本文件。我从互联网上尝试了很多代码脚本,但没有奏效。如何将字符串写入文本文件?
我试过这个。
我相信这在过去曾被问过几次,我看到了他们,但找不到正确的答案。谢谢
java ×4
sql ×3
sql-server ×3
apache-kafka ×2
maven ×2
apache-spark ×1
c ×1
cytoscape.js ×1
hdfs ×1
rdd ×1
redis ×1