Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
alfordtp
Frequent Visitor

Resultados de la consulta 1 como entrada para la consulta 2

I've visto algunos post que son similares, pero nada parece solucionar mis problemas.

Usando el last.fm api: ingrese 1 artista, devuelva 100 artistas similares. Usa a esos 100 artistas como insumo y encuentra a sus artistas similares. Al final, 10.000 registros.

let
    Source = Json.Document(Web.Contents("http://ws.audioscrobbler.com/2.0/?method=artist.getsimilar&artist=" & ArtistName1 & "&api_key=APIKEY&format=json")),
    similarartists = Source[similarartists],
    artist = similarartists[artist],
    #"Converted to Table" = Table.FromList(artist, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"name", "mbid", "match", "url", "image", "streamable"}, {"Column1.name", "Column1.mbid", "Column1.match", "Column1.url", "Column1.image", "Column1.streamable"}),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded Column1",{"Column1.mbid", "Column1.image", "Column1.streamable", "Column1.url"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Column1.match", "%Match"}, {"Column1.name", "RelatedArtist"}}),
    #"Added Custom" = Table.AddColumn(#"Renamed Columns", "Original Artist", each ArtistName1)
in
    #"Added Custom"

No estoy seguro de cuántas consultas necesito. He intentado "Invocar una consulta personalizada" como una segunda columna donde la primera columna contiene los 100 artistas relacionados, pero eso no funciona para mí.

Cualquier pensamiento, publicación, referencia o tutorial sería apreciado.

6 REPLIES 6

Simplemente envuelva la llamada a 'artists.getsimilar' en la API en una función que toma el 'ArtistName' como parámetro.

Algo como esto es con lo que terminarías:

Dejar
Source á Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCsrPycnMS1cILsnPSy1Wio0FAA-", BinaryEncoding.Base64), Compression.Deflate)), deje _t ((tipo de texto anulable) meta [Serialized.Text ? true]) en la tabla de tipos Artist [_t]),
"Tipo de cambio" - Table.TransformColumnTypes(Source,'Artist', escriba text'),
"Función personalizada invocada" - Table.AddColumn(-"Changed Type", "RelatedArtists", each GetRelated([Artist])),
"Expanded RelatedArtists" á Table.ExpandTableColumn(-"Invoked Custom Function", "RelatedArtists", "RelatedArtist", "%Match", "RelatedArtist", "RelatedArtist", "%Match")),
"Columnas renombradas" - Table.RenameColumns("Expanded RelatedArtists","%Match", "First%Match", "RelatedArtist", "FirstRelatedArtist"-),
"Función personalizada invocada1" - Table.AddColumn("Renamed Columns", "SecondRelatedArtist", cada GetRelated([FirstRelatedArtist])),
"Expanded SecondRelatedArtist" á Table.ExpandTableColumn(-"Invoked Custom Function1", "SecondRelatedArtist", "RelatedArtist", "%Match", "SecondRelatedArtist.RelatedArtist", "SecondRelatedArtist.%Match")
"Columnas renombradas1" - Table.RenameColumns(''Expanded SecondRelatedArtist",'SecondRelatedArtist.RelatedArtist", 'SecondRelatedArtist'' , 'SecondRelatedArtist'', ''SecondRelatedArtist'.%Match", "Second%Match" ?)
En
"Columnas renombradas1"

Esto llama a la función personalizada por debajo de dos veces - una vez para obtener el primer "anillo" de artistas relacionados y su match%, pasando en el artista lo que estaba originalmente en la mesa (sólo Rolling Stones en mi ejemplo, pero se puede tener más artistas en la mesa original para hacer esto para más de un artista), y una vez más para obtener el segundo "anillo" de artistas relacionados y coinciden con su% de pasar en cada artista desde el primer "anillo".

La función:

Dejar
Origen: Json.Document(Web.Contents("http://ws.audioscrobbler.com/2.0/?method-artist.getsimilar&artist-" & Artist & "&api_key-" & APIKEY & "&format-json")),
antacos similares - Fuente[similarartistas],
artista - artistas similares[artista],
"Convertido a la tabla" - Table.FromList(artist, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
"Columna expandida1" - Table.ExpandRecordColumn(-"Convertido a la tabla", "Column1", "name", "mbid", "match", "url", "image", "streamable", "Column1.name", "Column1.mbid", "Column1.match", "Column1.url", "Column1.image", "Column1.streamable"),
"Columnas eliminadas" - Table.RemoveColumns(-"Columna expandida1","Column1.mbid", "Column1.image", "Column1.streamable", "Column1.url"-),
"Columnas renombradas" - Table.RenameColumns(''Columnas eliminadas'",'Column1.match", '%Match"', '''Column1.name''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
En
"Columnas renombradas"

El resultado:

jeroenterheerdt_0-1594756004528.png

y así sucesivamente...

¡Esto funciona sobre todo! Sin embargo, obtengo un error cuando intento aplicar esto:

No se pudieron guardar las modificaciones en el servidor. Error devuelto: 'ERROR OLE DB u ODBC: [Expression.Error] No se encontró la columna 'Column1' de la tabla.. '.
¿Alguna idea de por qué conseguiría esto?

eso es probablemente porque podría haber resultados vacíos. Déjame ver si puedo llegar a alguna solución aquí.

hmm, hay un valor nulo en alguna parte, pero realmente no puedo averiguar dónde. Yo recomendaría ir a través de él paso a paso y construir en la lógica para manejar los casos de borde donde no se obtiene ningún resultado.

Gracias por su ayuda hasta ahora. ¿Puede señalarme algunos ejemplos de este tipo de manejo de errores?

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.