Note that if you read in the table using sqlContext.read.parquet(...) or if
you use saveAsTable(...) the partitions will be auto-discovered.  However,
this is not compatible with Hive if you also want to be able to read the
data there.

On Thu, Nov 12, 2015 at 6:23 AM, Chandra Mohan, Ananda Vel Murugan <
ananda.muru...@honeywell.com> wrote:

> Thank you. It works perfectly fine. I enabled dynamic partition in my
> table and then fired “msck repair table your_table” and it works now
>
>
>
> Regards,
>
> Anand.C
>
>
>
> *From:* Michal Klos [mailto:michal.klo...@gmail.com]
> *Sent:* Thursday, November 12, 2015 6:32 PM
> *To:* Chandra Mohan, Ananda Vel Murugan
> *Cc:* user
> *Subject:* Re: Partitioned Parquet based external table
>
>
>
> You must add the partitions to the Hive table with something like "alter
> table your_table add if not exists partition (country='us');".
>
>
> If you have dynamic partitioning turned on,  you can do 'msck repair table
> your_table' to recover the partitions.
>
>
>
> I would recommend reviewing the Hive documentation on partitions
>
>
>
> M
>
>
>
>
>
>
> On Nov 12, 2015, at 6:38 AM, Chandra Mohan, Ananda Vel Murugan <
> ananda.muru...@honeywell.com> wrote:
>
> Hi,
>
>
>
> I am using Spark 1.5.1.
>
>
>
>
> https://github.com/apache/spark/blob/master/examples/src/main/java/org/apache/spark/examples/sql/JavaSparkSQL.java.
> I have slightly modified this example to create partitioned parquet file
>
>
>
> Instead of this line
>
>
>
> schemaPeople.write().parquet("people.parquet");
>
>
>
> I use this line
>
>
>
>
> schemaPeople.write().partitionBy("country").parquet("/user/Ananda/people.parquet");
>
>
>
> I have also updated the Person class and added country attribute. I have
> also updated my input file accordingly.
>
>
>
> When I run this code in spark, it seems to work. I could see partitioned
> folder and parquet file inside it in HDFS where I store this parquet file.
>
>
>
> But when I create a external table in Hive, it does not work. When I do
> “select  *  from person5”, it returns no rows.
>
>
>
> This is how I create the table
>
>
>
> CREATE EXTERNAL TABLE person5(name string, age int,city string)
>
> PARTITIONED BY (country string)
>
> STORED AS PARQUET
>
> LOCATION '/user/ananda/people.parquet/';
>
>
>
> When I create a non partitioned table, it works fine.
>
>
>
> Please help if you have any idea.
>
>
>
> Regards,
>
> Anand.C
>
>

Reply via email to