我正在尝试从Hive表中读取数据,然后添加具有空值的添加列。通过使用此我得到以下错误:
Exception in thread "main" org.apache.spark.sql.AnalysisException: cannot resolve '`address_1`' given input columns: [postalcode, first_name, organization_name, application_number, type, last_name, country];;
实际上 address_1 不是来自Hive的列,尝试使用默认值添加此列" null "。
到目前为止我尝试过的是:val ipa_agent = hiveContext.sql("select * from agent")
val df1 = ipa_agent.withColumn("address_1",lit("null"))
除了 withColumn 以外,还有其他方法可以添加列吗?
答案 0 :(得分:0)
列出查询中的所有列+另外一列:
val ipa_agent = hiveContext.sql("select postalcode, first_name, organization_name, application_number, type, last_name, country, cast(null as string) as address_1 from agent")
答案 1 :(得分:0)
我尝试使用withColumn添加一个新列,它对我来说很好用
import sqlContext.implicits._
import org.apache.spark.sql.functions._
val df = sc.parallelize(Array(("101",1),("102",2))).toDF("id","rank")
val df_added_column = df.withColumn("address1", lit("null"));
df_added_column.show
+---+----+--------+
| id|rank|address1|
+---+----+--------+
|101| 1| null|
|102| 2| null|
+---+----+--------+
其他选项,您可以尝试使用leftjoin提到的所有列名称,并在最后将address1添加为null。