java - sparksession 中的错误,因为 sparksession 无法解决
问题描述
我是激发相关工作的新手。我尝试过如下编码。包 hdd.models;
import java.util.ArrayList;
import java.util.List;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.Function;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.RowFactory;
import org.apache.spark.sql.SQLContext;
import org.apache.spark.sql.types.StructField;
import org.apache.spark.sql.types.StructType;
import org.apache.spark.sql.types.DataType;
import org.apache.spark.sql.types.DataTypes;
import org.apache.spark.sql.SparkSession;
/*
* Analysis of the data using Spark SQL
*
*/
public class HrtDisDataAnalyze {
public HrtDisDataAnalyze() {
}
public static void main(String[] args) {
SparkConfAndCtxBuilder ctxBuilder = new SparkConfAndCtxBuilder();
JavaSparkContext jctx = ctxBuilder.loadSimpleSparkContext("Heart Disease Data Analysis App", "local");
JavaRDD<String> rows = jctx.textFile("file:///C:/Users/harpr/workspace/HrtDisDetection/src/resources/full_data_cleaned.csv");
String schemaString = "age sex cp trestbps chol fbs restecg thalach exang oldpeak slope ca thal num";
List<StructField> fields = new ArrayList<>();
for (String fieldName : schemaString.split(" ")) {
fields.add(DataTypes.createStructField(fieldName, DataTypes.StringType, true));
}
StructType schema = DataTypes.createStructType(fields);
JavaRDD<Row> rowRdd = rows.map(new Function<String, Row>() {
@Override
public Row call(String record) throws Exception {
String[] fields = record.split(",");
return RowFactory.create(fields[0],fields[1],fields[2],fields[3],fields[4],fields[5],fields[6],fields[7],fields[8],fields[9],fields[10],fields[11],fields[12],fields[13]);
}
});
SparkSession sparkSession = SparkSession.builder().config("spark.serializer", "org.apache.spark.serializer.KryoSerializer").config("spark.kryo.registrator", "org.datasyslab.geospark.serde.GeoSparkKryoRegistrator").master("local[*]").appName("testGeoSpark").getOrCreate();
Dataset df = spark.read().csv("usr/local/eclipse1/eclipse/hrtdisdetection/src/resources/cleveland_data_raw.csv");
df.createOrReplaceTempView("heartDisData");
sparksession 中出现以下错误“无法解析他的类型 org.apache.spark.sql.SparkSession$Builder。它是从所需的 .class 文件中间接引用的”注意:我使用 spark-2.1.0 和 scala 2.10。上面的代码我在 java eclipse-neon 中试过
解决方案
我为 spark 会话添加了 jar 文件。错误清除。 https://jar-download.com/?search_box=org.apache.spark%20spark.sql
推荐阅读
- haskell - 如何确定 Haskell 函数的类型?
- reactjs - React Native 在深度链接时省略了井号键
- python - 使用自定义 Python 在 Yarn 上的 Spark 在客户端模式下失败
- ios - iOS Swift 批量请求
- r - 将函数作为输入并在调用时使其表达式可见的函数
- angular - 如何将图像添加到幻灯片
- r - 如何在 google colab for R 中加载 csv 文件?
- vb.net - 在 VB.Net 中获取索引最高值
- aws-lambda - 为 AWS Lambda 添加权限的正确 terraform 语法
- asp.net-core - 如何修复:在 Azure Devops 构建管道实体框架不生成 SQL 脚本