【问题标题】:metastore_db doesn't get created with apache spark 2.2.1 in windows 7在 Windows 7 中无法使用 apache spark 2.2.1 创建 metastore_db
【发布时间】:2018-06-10 02:33:22
【问题描述】:

我想在Windows 7 via cmd 中使用最新的Apache Spark Version i.e 2.2.1 读取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,但我想在最新版本中读取。谁能帮我这个??我被困了很多天。

【问题讨论】:

  • 您是否有任何其他 Spark 应用程序(包括spark-shell)正在运行?您可以编辑您的问题并添加整个堆栈跟踪吗?
  • 我没有运行任何其他 spark 应用程序,并且它的堆栈跟踪很长。我不能把它放在这里,所以我只是从堆栈跟踪中找出了主要原因行
  • 顺便说一句,您不需要com.databricks:spark-csv_2.11:1.5.0,因为它已经是 Spark 2.x 的一部分。删除它以减少后顾之忧。
  • 尝试不使用 databricks 包,但仍然出现相同的错误。我已更新我的问题 如果需要任何其他信息,请告诉我。

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


【解决方案1】:

打开 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

【讨论】:

  • 我试过 val bhaskar = sqlContext.read.format("csv").option("header", "true").option("inferSchema", "true").load("D :/SampleDemand") 但在 Windows 中抛出同样的错误。
  • 我可以在 linux 中使用 SparkSession 变量(即 spark)处理它
  • 尝试在 Windows 中以管理权限运行命令提示符,然后运行 ​​spark-shell
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多