如何使用spark访问配置单元数据

时间:2017-05-03 13:38:51

标签: scala apache-spark

我将表存储为文本文件,例如hive中的employee,我想使用spark访问它。

  1. 首先我使用

    设置了sql上下文对象
    val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
    
  2. 然后我创建了表

    scala>sqlContext.sql("CREATE TABLE IF NOT EXISTS employee(
    id INT, name STRING, age INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY 
    ',' LINES TERMINATED BY '\n'") 
    
  3. 此外,我试图使用

    加载文本文件的内容
    scala> sqlContext.sql("LOAD DATA LOCAL INPATH 'employee.txt' INTO TABLE employee")
    
  4. 我收到错误

    SET hive.support.sql11.reserved.keywords=false
    FAILED: SemanticException Line 1:23 Invalid path ''employee.txt'': No files 
    matching path file:/home/username/employee.txt
    

    如果我必须将文本文件放在运行spark-shell的当前目录中,该怎么做?

2 个答案:

答案 0 :(得分:0)

你在hadoop上运行蜂巢吗? 尝试使用绝对路径...如果这不起作用,尝试将文件加载到hdfs,然后给出文件的绝对路径(hdfs位置)。

答案 1 :(得分:0)

尝试执行以下步骤

  • 以本地模式启动spark-shell例如:spark-shell --master local [*]
  • 为文件提供加载文件的完整路径 例如:文件:///home/username/employee.txt