Spark SQL中的自定义OrderBy

时间:2017-09-07 12:35:00

标签: apache-spark apache-spark-sql

我有两列需要以自定义方式排序。

对于Eg: Month列应以Jan2015Dec(CurrentYear)

的方式对其进行排序

并且还假设我将列作为季度而我希望它为Q1-2015Q2-2015,... Q4-CurrentYear ..

按照Spark Sql的顺序,我将给出orderBy("Month","Quarter")但订单应该像以前一样自定义序列。

我尝试过以下代码:

import org.apache.spark.sql.SaveMode 
import org.apache.spark.storage.StorageLevel
val vDF=spark.sql(""" select month,quarter from table group by month,quarter order by month,quarter """);
vDF.repartition(10).orderBy("Month","Quarter").write(results‌​.csv);

截至目前,本月按字母顺序排列为 4月,8月,12月 ....按季度排列为 2015年第1季度,2016年第1季度。 ......但要求是上面提到的

SAMPLE

1 个答案:

答案 0 :(得分:2)

我只是解析日期:

<?php header('Content-Type: text/xml'); 
echo '<?xml version="1.0" encoding="utf-8"?>'; ?>
<rss version="2.0">
    <channel>
        <title>METHUZALA.COM</title>
        <link>http://www.methuzala.com</link>
        <description>UPDATE: Articles Found and Added</description>
        <language> en-us </language>

        <?php 
            require('php/includes/path.php');
            $conn= mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME );
            $query="SELECT title, article_url, short_description from  news_article";
            $data = mysqli_query($conn,$query);
            while ($row = mysqli_fetch_array($data))  {
                $title=$row['title'];
                $wurl=$row['article_url'];
                $description=$row['short_description'];
        ?>
        <element> 
            <title><?php echo $title; ?></title>
            <link><?php echo $wurl; ?></link>
            <description><?php echo $description; ?></description>
        </element>
        <?php
        }
        mysqli_close($conn);
        ?>
    </channel>
</rss>