【发布时间】:2016-09-20 10:53:15
【问题描述】:
我正在尝试将数据帧转换为 spark Scala 中的配置单元表。我从 XML 文件中读取了数据框。它使用 SQL 上下文来执行此操作。我想将此数据框转换为配置单元表。我收到此错误:
“警告 HiveContext$$anon$1:无法以 Hive 兼容的方式持久化
database_1.test_table。以 Spark SQL 特定格式将其持久化到 Hive 元存储中。”
object spark_conversion {
def main(args: Array[String]): Unit = {
if (args.length < 2) {
System.err.println("Usage: <input file> <output dir>")
System.exit(1)
}
val in_path = args(0)
val out_path_csv = args(1)
val conf = new SparkConf()
.setMaster("local[2]")
.setAppName("conversion")
val sc = new SparkContext(conf)
val hiveContext = new HiveContext(sc)
val df = hiveContext.read
.format("com.databricks.spark.xml")
.option("rowTag", "PolicyPeriod")
.option("attributePrefix", "attr_")
.load(in_path)
df.write
.format("com.databricks.spark.csv")
.option("header", "true")
.save(out_path_csv)
df.saveAsTable("database_1.test_table")
df.printSchema()
df.show()
【问题讨论】:
-
您面临的问题是什么? saveAsTable 不适合你?
-
所以你创建了一个
HiveContext,这是一个好的开始。 只要使用它!df = hiveContext.read.... -
好的,我添加了上下文。但是我收到此错误:WARN HiveContext$$anon$1: Could not persist
database_1.test_tablein a Hive compatible way。以 Spark SQL 特定格式将其持久化到 Hive 元存储中。
标签: scala hadoop apache-spark dataframe hive