在Windows 7中,不能使用apache spark 2.2.1创建metastore_db

时间:2017-12-29 17:28:31

标签: scala csv apache-spark apache-spark-sql

我希望使用Apache Spark Version i.e 2.2.1中的最新Windows 7 via cmd读取CSV文件,但由于metastore_db存在问题,因此无法执行此操作。我试过以下步骤:

1. spark-shell --packages com.databricks:spark-csv_2.11:1.5.0 //Since my scala 
                                                              // version is 2.11  
 2. val df = spark.read.format("csv").option("header", "true").option("mode", "DROPMALFORMED").load("file:///D:/ResourceData.csv")// As //in latest versions we use SparkSession variable i.e spark instead of //sqlContext variable  

但它让我失误:

  Caused by: org.apache.derby.iapi.error.StandardException: Failed to start database 'metastore_db' with class loader o
.spark.sql.hive.client.IsolatedClientLoader  

Caused by: org.apache.derby.iapi.error.StandardException: Another instance of Derby may have already booted the database 

我能够在1.6版本中阅读csv,但我想在最新版本中阅读。谁能帮我这个??很多天我都被困住了。

2 个答案:

答案 0 :(得分:4)

打开Spark Shell

spark-shell

通过SQLContext传递Spark Context并将其分配给sqlContext变量

 val sqlContext = new org.apache.spark.sql.SQLContext(sc) // As Spark context available as 'sc'

根据您的要求阅读CSV文件

val bhaskar = sqlContext.read.format("csv")
  .option("header", "true")
  .option("inferSchema", "true")
  .load("/home/burdwan/Desktop/bhaskar.csv") // Use wildcard, with * we will be able to import multiple csv files in a single load ...Desktop/*.csv

收集RDD并打印

bhaskar.collect.foreach(println)

<强>输出

_a1 _a2     Cn      clr clarity depth   aprx price  x       y       z
1   0.23    Ideal   E   SI2     61.5    55   326    3.95    3.98    2.43
2   0.21    Premium E   SI1     59.8    61   326    3.89    3.84    2.31
3   0.23    Good    E   VS1     56.9    65   327    4.05    4.07    2.31
4   0.29    Premium I   VS2     62.4    58   334    4.2     4.23    2.63
5   0.31    Good    J   SI2     63.3    58   335    4.34    4.35    2.75
6   0.24    Good    J   VVS2    63      57   336    3.94    3.96    2.48

答案 1 :(得分:0)

最后,即使这也只适用于基于Linux的O.S.从官方文档下载apache spark,并使用this链接进行设置。只需验证您是否可以调用spark-shell。现在,您可以使用最新的spark版本,使用任何类型的文件加载和执行操作。我不知道为什么它不在Windows上工作,即使我是第一次运行它。