전체 글
-
groupBy 후 collect_list 에 여러개의 column 값을 담기spark 2024. 11. 19. 20:46
collect_list(struct(???)) 를 사용한다.import spark.implicits._case class BaseMetric( id: String, log_type: String, device_type: String, clk_count: Long, imp_count: Long)case class BaseMetricGroup( id: String, metrics: Seq[BaseMetric])val metricDs: Dataset[BaseMetric] = ???metricDs .groupBy("id") .agg( collect_list( struct(BaseMetric.fields.map(col): _*) ).as("metrics") ) .as[BaseMetricGroup]
-
Tagless Finalscala/basic 2024. 11. 19. 15:09
https://www.reddit.com/r/scala/comments/s6ih9p/comment/htagml4/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button trait Expr[T] { def num(n: Int): T def add(l: T, r: T): T}implicit def eval: Expr[Int] = new Expr[Int] { def num(i: Int): Int = i def add(l: Int, r: Int): Int = l + r}implicit def show: Expr[String] = new Expr[String] { def num(i:..
-
Magnum 기본 사용scala jdbc/magnum 2024. 11. 7. 22:20
https://github.com/AugustNagro/magnum 을 사용해 본다. build.sbtlibraryDependencies += "com.augustnagro" %% "magnum" % "1.3.0"libraryDependencies += "com.zaxxer" % "HikariCP" % "5.0.1"libraryDependencies += "mysql" % "mysql-connector-java" % "8.0.33" 코드import com.augustnagro.magnum.*import com.mysql.cj.jdbc.MysqlDataSourceimport com.zaxxer.hikari.pool.HikariPoolimport com.zaxxer.hikari.{HikariConfig,..
-
pyspark 에서 avro 파일 읽기pyspark 2024. 10. 29. 11:19
문제pyspark(jupyter notebook) 에서 avro 파일을 읽어본다. 방법11. spark conf 의 `spark.jars.packages` 를 아래와 같이 설정한다.import pysparkfrom pyspark.sql import SparkSessionconf = pyspark.SparkConf().setAll([ ('spark.jars.packages', 'org.apache.spark:spark-avro_2.12:3.1.2'), ...])spark = SparkSession.builder.config(conf=conf).getOrCreate() 2. 아래와 같이 코드를 작성한다.df = spark.read.format('avro').load('myfile.avro') 방법21...
-
자주 쓰는 Pandas 코드pandas 2024. 8. 13. 11:08
데이터 통계 보기df.describe()df.describe(include='object') df.value_counts() 데이터 필터링df[['name', 'age']]df.loc[df['a'] > 10, ['a', 'c']] # Select rows meeting loglogical condition, and only the specific columns .df.sample(frac=0.5)df.sample(n=10) # Randomly select n rows. 1개의 Cell 읽어 DataFrame 이 아닌 원래 type 으로 리턴하기web_doc_meta.loc[web_doc_meta['key'] == 'vTime', 'value'].to_numpy()[0] Column 타입 변경하..
-
Bean 만들기java/spring 2024. 7. 22. 20:27
HelloConfiguration.javaimport org.springframework.beans.factory.annotation.Qualifier;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Primary;class Person { private String name; private int age; private Address address; public Person(String name, int age, Address address) { ..
-
DataFrame 에 신규 칼럼 추가하기spark 2024. 7. 19. 19:19
문제보통 withColumn() 으로 쉽게 신규 칼럼을 추가할 수 있다. 하지만 mapPartitions() 등을 사용할 때는 쉽지가 않다. 코드https://stackoverflow.com/questions/33876155/how-to-add-columns-into-org-apache-spark-sql-row-inside-of-mappartitions import org.apache.spark.rdd.RDDimport org.apache.spark.sql.types.{StringType, StructField, StructType}import org.apache.spark.sql.{DataFrame, Row, SparkSession}val spark: SparkSession = ...val df: D..