Spark xml - Apache Spark does not include a streaming API for XML files. However, you can combine the auto-loader features of the Spark batch API with the OSS library, Spark-XML, to stream XML files. In this article, we present a Scala based solution that parses XML data using an auto-loader. Install Spark-XML library

 
{"payload":{"allShortcutsEnabled":false,"fileTree":{"src/main/scala/com/databricks/spark/xml/util":{"items":[{"name":"InferSchema.scala","path":"src/main/scala/com ... . Does u haul install trailer hitches

Currently it supports the shortened name usage. You can use just xml instead of com.databricks.spark.xml. XSD Support. Per above, the XML for individual rows can be validated against an XSD using rowValidationXSDPath. The utility com.databricks.spark.xml.util.XSDToSchema can be used to extract a Spark DataFrame schema from some XSD files. It ... Nov 12, 2020 · Hello, I'm suffering from writing xml with some invisible characters. I read data from mysql through jdbc and write as xml on hdfs. But I met Caused by: com.ctc.wstx.exc.WstxIOException: Invalid white space character (0x2) in text to out... May 19, 2021 · Apache Spark does not include a streaming API for XML files. However, you can combine the auto-loader features of the Spark batch API with the OSS library, Spark-XML, to stream XML files. In this article, we present a Scala based solution that parses XML data using an auto-loader. Install Spark-XML library Apr 11, 2023 · When reading XML files in PySpark, the spark-xml package infers the schema of the XML data and returns a DataFrame with columns corresponding to the tags and attributes in the XML file. I realize that this is a syntax error, but I haven't been able to find good documentation on how to translate the schema I see below into the schema involving Spark types like ArrayType, StructField, and StructType. related question involving Array Type objects in XML: complex custom schema for xml processing in sparkCreate the spark-xml library as a Maven library. For the Maven coordinate, specify: Databricks Runtime 7.x and above: com.databricks:spark-xml_2.12:<release> See spark-xml Releases for the latest version of <release>. Install the library on a cluster. Example The example in this section uses the books XML file. Retrieve the books XML file: BashSpark-xml is a very cool library that makes parsing XML data so much easier using spark SQL. And spark-csv makes it a breeze to write to csv files. Here’s a quick demo using spark-shell, include ...This will be used with YARN's rolling log aggregation, to enable this feature in YARN side yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds should be configured in yarn-site.xml. The Spark log4j appender needs be changed to use FileAppender or another appender that can handle the files being removed while it is running.I want to use spark to read a large (51GB) XML file (on an external HDD) into a dataframe (using spark-xml plugin), do simple mapping / filtering, reordering it and then writing it back to disk, as a CSV file. But I always get a java.lang.OutOfMemoryError: Java heap space no matter how I tweak this.Spark History servers, keep a log of all Spark applications you submit by spark-submit, spark-shell. before you start, first you need to set the below config on spark-defaults.conf. spark.eventLog.enabled true spark.history.fs.logDirectory file:///c:/logs/path Now, start the spark history server on Linux or Mac by running.Step 1: Read XML files into RDD. We use spark.read.text to read all the xml files into a DataFrame. The DataFrame is with one column, and the value of each row is the whole content of each xml file. Then we convert it to RDD which we can utilise some low level API to perform the transformation.Mar 29, 2016 · I want to convert my input file (xml/json) to parquet. I have already have one solution that works with spark, and creates required parquet file. However, due to other client requirements, i might need to create a solution that does not involve hadoop eco system such as hive, impala, spark or mapreduce. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window.The spark-xml-utils library was developed because there is a large amount of XML in our big datasets and I felt this data could be better served by providing some helpful XML utilities. This includes the ability to filter documents based on an XPath expression, return specific nodes for an XPath/XQuery expression, or transform documents using a ...When reading XML files in PySpark, the spark-xml package infers the schema of the XML data and returns a DataFrame with columns corresponding to the tags and attributes in the XML file.Now, we need to make some changes to the pom.xml file, you can either follow the below instructions or download the pom.xml file GitHub project and replace it with your pom.xml file. 1. First, change the Scala version to the latest version, I am using 2.13.0I want the xml attribute values of "IdentUebersetzungName", "ServiceShortName" and "LableName" in the dataframe, can I do with Spark-XML? I tried with com.databricks:spark-xml_2.12:0.15.0, it seems that it supports nested XML not so well.Spark-xml is a very cool library that makes parsing XML data so much easier using spark SQL. And spark-csv makes it a breeze to write to csv files. Here’s a quick demo using spark-shell, include ...Dec 26, 2019 · This occurred because Scala version is not matching with spark-xml dependency version. For example, spark-xml_2.12-0.6.0.jar depends on Scala version 2.12.8. For example, you can change to a different version of Spark XML package. spark-submit --jars spark-xml_2.11-0.4.1.jar ... Read XML file. Remember to change your file location accordingly. Dec 6, 2018 · I am reading an XML file using spark.xml in Python and ran into a seemingly very specific problem. I was able to narrow to down the part of the XML that is producing the problem, but not why it is happening. Mar 21, 2022 · When working with XML files in Databricks, you will need to install the com.databricks - spark-xml_2.12 Maven library onto the cluster, as shown in the figure below. Search for spark.xml in the Maven Central Search section. Once installed, any notebooks attached to the cluster will have access to this installed library. This will be used with YARN's rolling log aggregation, to enable this feature in YARN side yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds should be configured in yarn-site.xml. The Spark log4j appender needs be changed to use FileAppender or another appender that can handle the files being removed while it is running. How to install spark-xml library using dbx. I am trying to install library spark-xml_2.12-0.15.0 using dbx. The documentation I found is to include it on the conf/deployment.yml file like: custom: basic-cluster-props: &basic-cluster-props spark_version: "10.4.x-cpu-ml-scala2.12" basic-static-cluster: &basic-static-cluster new_cluster ...Jan 11, 2017 · Convert Spark Dataframe to XML files. 3. Load XML string from Column in PySpark. 8. Read XML in spark. 2. how to convert multiple row tag xml files to dataframe. 0. Mar 17, 2021 · pyspark --packages com.databricks:spark-xml_2.11:0.4.1 if it does not work you can try this work around, as you can read your file as a text then parse it. #define your parser function: input is rdd: def parse_xml(rdd): """ Read the xml string from rdd, parse and extract the elements, then return a list of list. Now, we need to make some changes to the pom.xml file, you can either follow the below instructions or download the pom.xml file GitHub project and replace it with your pom.xml file. 1. First, change the Scala version to the latest version, I am using 2.13.0Download JD-GUI to open JAR file and explore Java source code file (.class .java) Click menu "File → Open File..." or just drag-and-drop the JAR file in the JD-GUI window spark-xml_2.12-0.16.0.jar file. Once you open a JAR file, all the java classes in the JAR file will be displayed.When reading/writing files in cloud storage using spark-xml, the job would fail with permissions errors, even though credentials were configured correctly and working when writing ORC/Parquet to the same destinations.I want the xml attribute values of "IdentUebersetzungName", "ServiceShortName" and "LableName" in the dataframe, can I do with Spark-XML? I tried with com.databricks:spark-xml_2.12:0.15.0, it seems that it supports nested XML not so well.Oct 22, 2015 · As mentioned in another answer, spark-xml from Databricks is one way to read XML, however there is currently a bug in spark-xml which prevents you from importing self closing elements. To get around this, you can import the entire XML as a single value, and then do something like the following: 2. # First simulating the conversion process. $ xml2er -s -l4 data.xml. When the command is ready, removing –skip or -s, allows us to process the data. We direct the parquet output to the output directory for the data.xml file. Let’s first create a folder “output_dir” as the location to extract the generated output.May 19, 2022 · Apache Spark does not include a streaming API for XML files. However, you can combine the auto-loader features of the Spark batch API with the OSS library, Spark-XML, to stream XML files. In this article, we present a Scala based solution that parses XML data using an auto-loader. Install Spark-XML library Example: Read XML from S3. The XML reader takes an XML tag name. It examines elements with that tag within its input to infer a schema and populates a DynamicFrame with corresponding values. The AWS Glue XML functionality behaves similarly to the XML Data Source for Apache Spark. You might be able to gain insight around basic behavior by ...Apache Spark can also be used to process or read simple to complex nested XML files into Spark DataFrame and writing it back to XML using Databricks Spark XML API (spark-xml) library. In this article, I will explain how to read XML file with several options using the Scala example. Spark XML Databricks dependency Spark Read XML into DataFrameSpark-xml is a very cool library that makes parsing XML data so much easier using spark SQL. And spark-csv makes it a breeze to write to csv files. Here’s a quick demo using spark-shell, include ...The last one with com.databricks.spark.xml wins and becomes the streaming source (hiding Kafka as the source). In order words, the above is equivalent to .format('com.databricks.spark.xml') alone. As you may have experienced, the Databricks spark-xml package does not support streaming reading (i.e. cannot act as a streaming source). The package ...{"payload":{"allShortcutsEnabled":false,"fileTree":{"src/main/scala/com/databricks/spark/xml/util":{"items":[{"name":"InferSchema.scala","path":"src/main/scala/com ... Part of Microsoft Azure Collective. 1. I'm trying to load an XML file in to dataframe using PySpark in databricks notebook. df = spark.read.format ("xml").options ( rowTag="product" , mode="PERMISSIVE", columnNameOfCorruptRecord="error_record" ).load (filePath) On doing so, I get following error: Could not initialize class com.databricks.spark ...@koleaby4 that's an object in the JVM, it's declared, what are you asking here? use the example in the README. thanks for getting back to me, @srowen. I got to this page just like @gpadavala and @3mlabs - looking for a way to parse xml in columns using Python.I want to convert my input file (xml/json) to parquet. I have already have one solution that works with spark, and creates required parquet file. However, due to other client requirements, i might need to create a solution that does not involve hadoop eco system such as hive, impala, spark or mapreduce.Jan 24, 2023 · Solved: Hi community, I'm trying to read XML data from Azure Datalake Gen 2 using com.databricks:spark-xml_2.12:0.12.0: - 10790 Sep 26, 2020 · 手順. SparkでXMLファイルを扱えるようにするためには、”spark-xml” というSparkのライブラリをクラスタにインストールする必要があります。. spark-xml をDatabricksに取り込む方法は2つ. Import Library - Marvenより、spark-xmlの取り込み. JARファイルを外部より取得し ... Spark is the de-facto framework for data processing in recent times and xml is one of the formats used for data . Let us see the following . Reading XML file How does this works Validating...Jul 6, 2023 · Create the spark-xml library as a Maven library. For the Maven coordinate, specify: Databricks Runtime 7.x and above: com.databricks:spark-xml_2.12:<release>. See spark-xml Releases for the latest version of <release>. Install the library on a cluster. When I am writting the file I am not able to see the original Cyrillic character, those are being replaced by ???. I suspect the reason being after writting it to HDFS the charset is getting converted to charset=us-ascii. I am using spark 1.6 and scala 2.10. I tried to set the default encoding of the program using multiple approaches:-.Sep 26, 2020 · 手順. SparkでXMLファイルを扱えるようにするためには、”spark-xml” というSparkのライブラリをクラスタにインストールする必要があります。. spark-xml をDatabricksに取り込む方法は2つ. Import Library - Marvenより、spark-xmlの取り込み. JARファイルを外部より取得し ... Example: Read XML from S3. The XML reader takes an XML tag name. It examines elements with that tag within its input to infer a schema and populates a DynamicFrame with corresponding values. The AWS Glue XML functionality behaves similarly to the XML Data Source for Apache Spark. You might be able to gain insight around basic behavior by ...Sep 18, 2020 · someXSDF = sparkSesh.read.format ('xml') \ .option ('rootTag', 'nmaprun') \ .option ('rowTag', 'host') \ .load (thisXML) If the file is small enough, you can just do a .toPandas () to review it: Then close the session. if you want to test this outside of Jupyter, just go the command line and do. You don't need spark-xml at all here. You just apply an XML parser to the values in xmldata , parse them, extract the values you want as a list of values, and give the result new column names. Something roughly like this (probably not 100% correct, off the top of my head, but you get the idea)...Jan 22, 2023 · 1 Answer. Turns out that Spark can't handle large XML files as it must read the entirety of it in a single node in order to determine how to break it up. If the file is too large to fit in memory uncompressed, it will choke on the massive XML file. I had to use Scala to parse it linearly without Spark, node by node in recursive fashion, to ... As mentioned in another answer, spark-xml from Databricks is one way to read XML, however there is currently a bug in spark-xml which prevents you from importing self closing elements. To get around this, you can import the entire XML as a single value, and then do something like the following:Hello, I'm suffering from writing xml with some invisible characters. I read data from mysql through jdbc and write as xml on hdfs. But I met Caused by: com.ctc.wstx.exc.WstxIOException: Invalid white space character (0x2) in text to out...Nov 20, 2020 · There's a section on the Databricks spark-xml Github page which talks about parsing nested xml, and it provides a solution using the Scala API, as well as a couple of Pyspark helper functions to work around the issue that there is no separate Python package for spark-xml. So using these, here's one way you could solve the problem: Mar 29, 2016 · I want to convert my input file (xml/json) to parquet. I have already have one solution that works with spark, and creates required parquet file. However, due to other client requirements, i might need to create a solution that does not involve hadoop eco system such as hive, impala, spark or mapreduce. Ranking. #9765 in MvnRepository ( See Top Artifacts) Used By. 38 artifacts. Scala Target. Scala 2.10 ( View all targets ) Vulnerabilities. Vulnerabilities from dependencies: CVE-2018-17190.Now, we need to make some changes to the pom.xml file, you can either follow the below instructions or download the pom.xml file GitHub project and replace it with your pom.xml file. 1. First, change the Scala version to the latest version, I am using 2.13.0Dec 2, 2022 · I want the xml attribute values of "IdentUebersetzungName", "ServiceShortName" and "LableName" in the dataframe, can I do with Spark-XML? I tried with com.databricks:spark-xml_2.12:0.15.0, it seems that it supports nested XML not so well. Step 1: Read XML files into RDD. We use spark.read.text to read all the xml files into a DataFrame. The DataFrame is with one column, and the value of each row is the whole content of each xml file. Then we convert it to RDD which we can utilise some low level API to perform the transformation.Dec 2, 2022 · I want the xml attribute values of "IdentUebersetzungName", "ServiceShortName" and "LableName" in the dataframe, can I do with Spark-XML? I tried with com.databricks:spark-xml_2.12:0.15.0, it seems that it supports nested XML not so well. There's a section on the Databricks spark-xml Github page which talks about parsing nested xml, and it provides a solution using the Scala API, as well as a couple of Pyspark helper functions to work around the issue that there is no separate Python package for spark-xml. So using these, here's one way you could solve the problem:The last one with com.databricks.spark.xml wins and becomes the streaming source (hiding Kafka as the source). In order words, the above is equivalent to .format('com.databricks.spark.xml') alone. As you may have experienced, the Databricks spark-xml package does not support streaming reading (i.e. cannot act as a streaming source). The package ...You can also create a DataFrame from different sources like Text, CSV, JSON, XML, Parquet, Avro, ORC, Binary files, RDBMS Tables, Hive, HBase, and many more.. DataFrame is a distributed collection of data organized into named columns.Jul 20, 2018 · 1 Answer. Sorted by: 47. if you do spark-submit --help it will show: --jars JARS Comma-separated list of jars to include on the driver and executor classpaths. --packages Comma-separated list of maven coordinates of jars to include on the driver and executor classpaths. Will search the local maven repo, then maven central and any additional ... I want the xml attribute values of "IdentUebersetzungName", "ServiceShortName" and "LableName" in the dataframe, can I do with Spark-XML? I tried with com.databricks:spark-xml_2.12:0.15.0, it seems that it supports nested XML not so well.How to install spark-xml library using dbx. I am trying to install library spark-xml_2.12-0.15.0 using dbx. The documentation I found is to include it on the conf/deployment.yml file like: custom: basic-cluster-props: &basic-cluster-props spark_version: "10.4.x-cpu-ml-scala2.12" basic-static-cluster: &basic-static-cluster new_cluster ...Nov 20, 2020 · There's a section on the Databricks spark-xml Github page which talks about parsing nested xml, and it provides a solution using the Scala API, as well as a couple of Pyspark helper functions to work around the issue that there is no separate Python package for spark-xml. So using these, here's one way you could solve the problem: What is Spark Schema. Spark schema is the structure of the DataFrame or Dataset, we can define it using StructType class which is a collection of StructField that define the column name (String), column type (DataType), nullable column (Boolean) and metadata (MetaData) For the rest of the article I’ve explained by using the Scala example, a ... Jun 23, 2023 · 1. Spark Project Core 2,311 usages. org.apache.spark » spark-core Apache. Core libraries for Apache Spark, a unified analytics engine for large-scale data processing. Last Release on Jun 23, 2023. 2. Spark Project SQL 2,082 usages. org.apache.spark » spark-sql Apache. Spark SQL is Apache Spark's module for working with structured data based ... Spark-xml is a very cool library that makes parsing XML data so much easier using spark SQL. And spark-csv makes it a breeze to write to csv files. Here’s a quick demo using spark-shell, include ...Xml processing in Spark Ask Question Asked 7 years, 10 months ago Modified 3 years, 11 months ago Viewed 59k times 20 Scenario: My Input will be multiple small XMLs and am Supposed to read these XMLs as RDDs. Perform join with another dataset and form an RDD and send the output as an XML.Spark XML Datasource. Tags 1|sql; 1|SparkSQL; 1|DataSource; 1|xml; How to [+] Include this package in your Spark Applications using: spark-shell, pyspark, or spark ... Sep 12, 2022 · The documentation says following:. The workflows section of the deployment file fully follows the Databricks Jobs API structures.. If you look into API documentation, you will see that you need to use maven instead of file, and provide Maven coordinate as a string. When reading XML files the API accepts several options: path: Location of files. Similar to Spark can accept standard Hadoop globbing expressions. rowTag: The row tag of your xml files to treat as a row. For example, in this xml ..., the appropriate value would be book. Default is ROW.Welcome to Microsoft Q&A forum and thanks for your query. Databricks has a spark driver for XML - GitHub - databricks/spark-xml: XML data source for Spark SQL and DataFrames . You can use this databricks library on Synapse Spark. Compatible with Spark 3.0 and later with Scala 2.12, and also Spark 3.2 and later with Scala 2.12 or 2.13.The xml file is of 100MB in size and when I read the xml file, the count of the data frame is showing as 1. I believe spark is reading whole xml file into a single row. Code used to explode,The spark-xml-utils library was developed because there is a large amount of XML in our big datasets and I felt this data could be better served by providing some helpful XML utilities. This includes the ability to filter documents based on an XPath expression, return specific nodes for an XPath/XQuery expression, or transform documents using a ...In Spark SQL, flatten nested struct column (convert struct to columns) of a DataFrame is simple for one level of the hierarchy and complex when you have multiple levels and hundreds of columns. When you have one level of structure you can simply flatten by referring structure by dot notation but when you have a multi-level struct column then ...Processing XML files in Spark using Databricks Spark-XML API. We will use XStream API which is well know processing framework to serialize objects to XML and back again. <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>1.4.11</version> </dependency>. Though the example we have used here is not ...2. # First simulating the conversion process. $ xml2er -s -l4 data.xml. When the command is ready, removing –skip or -s, allows us to process the data. We direct the parquet output to the output directory for the data.xml file. Let’s first create a folder “output_dir” as the location to extract the generated output.Just to mention , I used Databricks’ Spark-XML in Glue environment, however you can use it as a standalone python script, since it is independent of Glue. We saw that even though Glue provides one line transforms for dealing with semi/unstructured data, if we have complex data types, we need to work with samples and see what fits our purpose.In my last blog we discussed on JSON format file parsing in Apache Spark.In this post we will try to explain the XML format file parsing in Apache Spark.XML format is also one of the important and commonly used file format in Big Data environment.Before deep diving into this further lets understand few points regarding…

Oct 22, 2015 · As mentioned in another answer, spark-xml from Databricks is one way to read XML, however there is currently a bug in spark-xml which prevents you from importing self closing elements. To get around this, you can import the entire XML as a single value, and then do something like the following: . Bangkok serviced apartments monthly

spark xml

Solved: Hi community, I'm trying to read XML data from Azure Datalake Gen 2 using com.databricks:spark-xml_2.12:0.12.0: - 10790spark-xml on jupyter notebook. 0 How do I read a xml file in "pyspark"? Load 7 more related questions Show fewer related questions Sorted by ...For those who come here in search of an answer, you can use tools like this online XSD / XML validator to pick out the errors in parsing your XML sample against your schema.Sep 15, 2017 · The last one with com.databricks.spark.xml wins and becomes the streaming source (hiding Kafka as the source). In order words, the above is equivalent to .format('com.databricks.spark.xml') alone. As you may have experienced, the Databricks spark-xml package does not support streaming reading (i.e. cannot act as a streaming source). The package ... You can also create a DataFrame from different sources like Text, CSV, JSON, XML, Parquet, Avro, ORC, Binary files, RDBMS Tables, Hive, HBase, and many more.. DataFrame is a distributed collection of data organized into named columns.Mar 21, 2022 · When working with XML files in Databricks, you will need to install the com.databricks - spark-xml_2.12 Maven library onto the cluster, as shown in the figure below. Search for spark.xml in the Maven Central Search section. Once installed, any notebooks attached to the cluster will have access to this installed library. For those who come here in search of an answer, you can use tools like this online XSD / XML validator to pick out the errors in parsing your XML sample against your schema.Jul 6, 2023 · Create the spark-xml library as a Maven library. For the Maven coordinate, specify: Databricks Runtime 7.x and above: com.databricks:spark-xml_2.12:<release>. See spark-xml Releases for the latest version of <release>. Install the library on a cluster. Scala Target. Scala 2.11 ( View all targets ) Vulnerabilities. Vulnerabilities from dependencies: CVE-2018-17190. Note: There is a new version for this artifact. New Version. 0.16.0. Maven.Spark is the de-facto framework for data processing in recent times and xml is one of the formats used for data . Let us see the following . Reading XML file How does this works Validating...May 28, 2019 · Teams. Q&A for work. Connect and share knowledge within a single location that is structured and easy to search. Learn more about Teams This occurred because Scala version is not matching with spark-xml dependency version. For example, spark-xml_2.12-0.6.0.jar depends on Scala version 2.12.8. For example, you can change to a different version of Spark XML package. spark-submit --jars spark-xml_2.11-0.4.1.jar ... Read XML file. Remember to change your file location accordingly.There's a section on the Databricks spark-xml Github page which talks about parsing nested xml, and it provides a solution using the Scala API, as well as a couple of Pyspark helper functions to work around the issue that there is no separate Python package for spark-xml. So using these, here's one way you could solve the problem:You can copy and modify hdfs-site.xml, core-site.xml, yarn-site.xml, hive-site.xml in Spark’s classpath for each application. In a Spark cluster running on YARN, these configuration files are set cluster-wide, and cannot safely be changed by the application. The better choice is to use spark hadoop properties in the form of spark.hadoop.*.May 26, 2017 · A Spark datasource for the HadoopOffice library. This Spark datasource assumes at least Spark 2.0.1. However, the HadoopOffice library can also be used directly from Spark 1.x. Currently this datasource supports the following formats of the HadoopOffice library: Dec 21, 2015 · Ranking. #9765 in MvnRepository ( See Top Artifacts) Used By. 38 artifacts. Scala Target. Scala 2.10 ( View all targets ) Vulnerabilities. Vulnerabilities from dependencies: CVE-2018-17190. {"payload":{"allShortcutsEnabled":false,"fileTree":{"src/main/scala/com/databricks/spark/xml/util":{"items":[{"name":"InferSchema.scala","path":"src/main/scala/com ...In the books.xml from spark-xml row tag contains child tags which will be parsed as row fields. In my examples there is no child tags only attributes. It was the main ...Jul 6, 2023 · Create the spark-xml library as a Maven library. For the Maven coordinate, specify: Databricks Runtime 7.x and above: com.databricks:spark-xml_2.12:<release>. See spark-xml Releases for the latest version of <release>. Install the library on a cluster. Step 1: Read XML files into RDD. We use spark.read.text to read all the xml files into a DataFrame. The DataFrame is with one column, and the value of each row is the whole content of each xml file. Then we convert it to RDD which we can utilise some low level API to perform the transformation.Mar 29, 2016 · I want to convert my input file (xml/json) to parquet. I have already have one solution that works with spark, and creates required parquet file. However, due to other client requirements, i might need to create a solution that does not involve hadoop eco system such as hive, impala, spark or mapreduce. .

Popular Topics