所以我之前有一些关于如何在java maven项目中使用spark查询cassandra的问题:在Java Maven项目中通过Spark查询Cassandra中的数据
好吧,我的问题得到了回答并且有效,但是我遇到了一个问题(可能是一个问题).我正在尝试使用datastax java API.这是我的代码:
package com.angel.testspark.test2;
import org.apache.commons.lang3.StringUtils;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.Function;
import java.io.Serializable;
import static com.datastax.spark.connector.CassandraJavaUtil.*;
public class App
{
// firstly, we define a bean class
public static class Person implements Serializable {
private Integer id;
private String fname;
private String lname;
private String role;
// Remember to declare no-args constructor
public Person() { }
public Integer getId() { return id; }
public void setId(Integer id) { this.id = id; } …Run Code Online (Sandbox Code Playgroud) 因此,当我运行我的代码时,我在pthread_join上遇到了分段错误.在我的pthread_join之后有一个没有运行的print语句.有谁知道为什么?你能给我一些关于如何解决这个问题的提示或想法吗?
输出打印出矩阵的所有行号,直到结束,然后它离开matrixCalc函数并在"创建线程后"打印.当我为1个线程添加一个参数时会发生这种情况.
我在这里包含了我的一小部分代码:
int main(int argc, char*argv[])
{
//takes in number of threads as 1st arg
pthread_attr_init(&attr);
//initialize matrix here
//passes num of threads through matrixcalc
for(i = 0; i < numberOfThreads; i++)
{
threadCount++;
pthread_create(&tid, &attr, matrixCalc(threadCount), NULL);
}
printf("after threads are created\n");
pthread_join(tid, NULL);
printf("after join\n");
exit(0);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是矩阵计算功能:
void *matrixCalc(threadCount)
{
int i, j, sum, tempNum, currentRow;
currentRow = threadCount;
sum=0;
while(currentRow < 1200)
{
//cycles through the column j for matrix B
for(j=0; j<500; …Run Code Online (Sandbox Code Playgroud) apache-spark ×1
c ×1
cassandra ×1
connector ×1
datastax ×1
java ×1
matrix ×1
posix ×1
pthread-join ×1
pthreads ×1