Как добавить вычисляемый столбец в фрейм данных в Scala / Python? - PullRequest
0 голосов
/ 09 октября 2019

Прежде всего, я новичок в программировании и только начинающий, играющий в лазурные блоки данных. В настоящее время у меня есть фрейм данных с именем 'df' (огромный набор данных с 50+ столбцами и более миллиона строк), и я хотел бы добавить в него еще один вычисляемый столбец на основе существующего столбца 'timestamp'.

Мне удобно работать с SQL, поэтому я преобразовал DF в таблицу и попытался использовать

ALTER TABLE logdata 
ADD sli VARCHAR(255)

, но всегда выдавал ошибку (код правильный, отлично работает в W3schools), так какниже

Ошибка в операторе SQL: ParseException: нет реальной альтернативы при вводе 'ALTER LOGDATA' (строка 1, позиция 6)

Итак, я пытаюсь использоватьили скала или питон. Мой вариант использования выходит за рамки огромного информационного кадра 'df'. У меня есть столбец с именем 'timestamp' (например, 2019-04-18 07:31:45). Мне нужно создать пользовательский столбец, который захватывает только раздел «mins» временной метки и вставляет его во вновь созданный столбец информационного кадра. Я попытался использовать withcolumn и подсвеченный предложениями других пользователей, но безуспешно. Может кто-нибудь помочь мне с этим, пожалуйста, как зациклить для этого огромного набора данных?

1 Ответ

0 голосов
/ 09 октября 2019

Пример использования Dataframe и функции минута sql:

object timeTest {

  def main(args: Array[String]) : Unit = {

    val spark = SparkSession.builder().master("local[1]").getOrCreate()

    import org.apache.spark.sql.functions.minute

    val df = spark.createDataFrame(
      spark.sparkContext.parallelize(List(
        Row(1, Timestamp.valueOf("2015-12-02 03:04:00")),
        Row(2, Timestamp.valueOf("1999-01-01 01:45:20"))
      )), StructType(
        List(StructField("id", IntegerType, true),
          StructField("time", TimestampType, true)))
    )

    df.withColumn("min", minute(col("time"))).show()
  } 
}

Это дает:

+---+--------------------+---+
| id|                time|min|
+---+--------------------+---+
|  1|2015-12-02 03:04:...|  4|
|  2|1999-01-01 01:45:...| 45|
+---+--------------------+---+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...